HV-637 Updating readme and pom

Adding new hv-5.1 profile, updating bval version, improving the way profiling is enabled, updating the documentation
HV-637 Improving caching in message interpolation

Now the tokenized message strings are cached as well. Also caching is done using ConcurrentReferenceHashMap with soft references to avoid memory leaks.

Renaming of ParserContext and MessageDescriptorParser to TokenCollector and TokenIterator to better reflect their use
HV-637 Pre-calculating the hash code for some instances which are immutable
HV-637 Formatting and some minor cleanup
HV-637 Renaming SingleThreadCachedTraversableResolver to CachingTraversableResolverForSingleValidation
HV-637 Avoiding putIfAbsent() calls if cached messages were found; Fixing some typos/formatting issues;