Fix issue with sub-protocol negotiation and SockJS

Before this change the SockJsWebSocketHandler precluded determination
of the sub-protocols by wrapping the actual target handler.

After this change SockJsWebSocketHandler implements SubProtocolCapable
and returns the list of sub-protocols from the wrapped handler.
Add section on path pattern comparison

Issue: SPR-10576
Update RestTemplate Javadoc

Issue: SPR-10497
Update UriTemplate Javadoc

Issue: SPR-10497
Fix documentation issue for user destinations

Issue: SPR-11992
Enrich documentation with details on how to filter messages

Issue: SPR-11952
Polish
Move JmsHandlerMethodFactory to spring-messaging

This commit moves JmsHandlerMethodFactory and its default
implementation to the messaging abstraction. Working on a similar
support for AMQP revealed that this factory has nothing that is JMS
specific and is exactly identical in the case of AMQP.

Issue: SPR-12053
Update ResourceHandlerReg. API for Resource handling

This change adds new methods in the ResourceHandlerRegistration API
for registering ResourceResolvers and ResourceTransformers, allowing
to better handle server-side resources in web applications.i

Here is an example of configuration for an HTML5 web application
that uses JavaScript and HTML5 appcache manifests:

    registry.addResourceHandler("/**")
      .addResourceLocations("classpath:static/")
      .addTransformer(new AppCacheManifestTransfomer())
      .addVersion("v1", "/**/*.js")
      .addVersionHash("/**");

Issue: SPR-11982
Add documentation for Java SockJS client

Issue: SPR-12006
Add to SockJsClient reference documentation

Issue: SPR-12006
Support HTTP HEAD method in MockMvcRequestBuilders

Surprisingly until now the MockMvcRequestBuilders did not have methods
for HTTP HEAD. This change adds such methods to the  API making it
consistent with other HTTP method types.

Issue: SPR-12055
Fix white spaces
Polish Javadoc for AnnotationCacheKey
Polish Javadoc for MutablePropertySources
Remove unused imports
Avoid duplicate entries

Prior to this commit, the schema distribution archive contains
duplicate entries for the more recent XSD as it is reference both with
its version and as the "default" XSD (i.e. without a version).

This commit configures the task to apply a duplicatesStrategy so that
only the first entry remains.

Issue: SPR-12011
Add messaging module section

Issue: SPR-11847
Fix broken link
Custom cache annotations and AspectJ

This commit clarifies what should be done in order to use custom cache
annotations with AspectJ.

Issue: SPR-11503