Add strictContentTypeMatching converter option

AbstractMessageConverter now supports a strictContentTypeMatching mode
in which the content type of a message must be resolved to a (non-null)
value that matches one of the configured supported MIME types in order
for the converter to be used.

Issue: SPR-11463
Add getMatchingPatterns method to Patterns condition

Issue: SPR-11484
Add default ContentTypeResolver initialization

Previously AbstractMessageConverter did not have a ContentTypeResolver
configured by default. However the Java config and XML namespace in
spring-messaging and spring-websocket always configured one.

This change ensures every AbstractMessageConverter is configured with an
instance of DefaultContentTypeResolver by default. This makes sense since
all the resolver does is make an attempt to find a content type to use
for matching. If it can't it returns null and it's up to the converter
to decide whether it can convert or not.

Issue: SPR-11462
Remove ContentTypeResolver from composite converter

Before this change CompositeMessageConverter had a ContentTypeResolver
field that was in turn set on all contained converters.

After this change that field is removed and effectively
CompositeMessageConverter is a simple container of other converters.
Each converter in turn must have been configured with a
ContentTypeResolver.

Doing so means it is less likely to have unexpected consequences when
configuring converters, the ContentTypeResolver set in the composite
converter overriding the one configured in a contained converter.

Also commit 676ce6 added default ContentTypeResolver initialization
to AbstractMessageConverter, which ensures that converters are still
straight forward to configure.

Issue: SPR-11462
Upgraded to Hibernate 4.2.9
Fixed content length check in XmlValidationModeDetector

Issue: SPR-11477
AnnotatedElementUtils wraps unexpected exceptions with descriptive IllegalStateException

Issue: SPR-10441
Polish Javadoc for DefaultContentTypeResolver
Polish CONTRIBUTING page
Update CONTRIBUTING.md
Expose path matching settings in MVC Java config

Prior to this commit, one had to provide her own
RequestMappingHandlerMapping instance (i.e extend
WebMvcConfigurationSupport and override the requestMappingHandlerMapping
method) in order to customize path matching properties on that bean.

Since SPR-10163, XML config users can do that using the
<mvc:path-matching/> XML tag. This commit adds the same feature to MVC
Java config with a PathMatchConfigurer.

Issue: SPR-11486
Update CONTRIBUTING.md
Use unique names when auto-registering Filters

AbstractDispatcherServletInitializer now adds a unique suffix to a
filter name if it fails to register it.

Issue: SPR-11493
Polish formatting and update links in README
Link to @SpringCentral in README
update org name in links

SpringSource github org name changed to spring-projects.
Update link to Pro Git in CONTRIBUTING page
Update link to Pro Git in CONTRIBUTING page
Add marshalling hooks in Jaxb2RootElementHttpMessageConverter

Allow Jaxb2RootElementHttpMessageConverter subclasses to customize
the {@link Marshaller} and the {@link Unmarshaller} created by the
message converter.

Issue: SPR-11488
Move customize(Un)Marshaller methods to abstract class

Issue: SPR-11488