enums: add `EnumEquals` extension

shorthand to parse a string to an enum, and test that it matches
a given enum, returning false on nulls and non-matches.
mappedreader: add `BadMappingException`

add `BadMappingException` with details on invalid casts, with tests.