Major refactoring of the message building classes 

# Full refactoring of the FluentMessage class.
- significant simplification
- Add EntityNamer class which is responsible for establishing the appropriate default name according to the type (i.e. enumerable for __IEnumerable__
- improved tens of error messages
- some error messages fixed

___Note that the message fluent API leaves room for improvements.___