Utility class to cache more flexible enum lookup. While normally case and punctuation have to match exactly, this
method performs lookup that:
is case-insensitive
ignores underscores
Caches mappings
If the enum has two fields that are equal except for case and underscores, an exact match will return the
appropriate value, and any fuzzy matches will map to the first value in the enum that is applicable.