Allow permissive deserialization of all enums

When deserializing enum types, we should allow:

  * Whitespace in the value, which should be stripped out for parsing.
  * Lower-case characters, which should be converted to upper-case.

This makes using enum type in Configuration files more permissive and
less confusing.
Improve enum deserialization

  * No more reflection.
  * Dashes now permitted and replaced with underscores.
  * Tests refined so each one is testing only one thing.
Throw a JsonMappingException bad enum values
Merge pull request #340 from nicktelford/feature/jackson-permissive-enum-deserializer

Allow permissive deserialization of all enums