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
Add more HttpHeaders constants for standard HTTP headers

Issue: SPR-12063
Change GenericConversionService to better handle enum

Prior to this commit, given an enum which implements some interface,
GenericConversionService would select the String -> Enum converter even
if a converter for String -> SomeInterface was registered.  This also
affected converters that were registered for String ->
SomeBaseInterface, when SomeInterface extended SomeBaseInterface.

This change modifies the behavior of the private method
getClassHierarchy() by placing Enum.class as late as possible, pretty
much the same way as Object.class is handled.

Issue: SPR-12050
Merge pull request #607 from dharaburda/SPR-12050

* SPR-12050:
  Change GenericConversionService to better handle enum
Move RequestReplyHeaderMapper to core

This commit moves the RequestReplyHeaderMapper and related base
implementation from Spring Integration to the core messaging module.
Polishing

This commit adds a test suite to validate the standard behaviour of
headers mapping. Writing those tests revealed that
'userDefinedHeaderPrefix' is broken and no easy way exists to fix it
so the feature has been removed since it does not seem to be used
anyway. It can be restored at anytime in SI with a richer hook point
that indicates if the property comes from the target object or the
standard MessageHeaders.
Refactor AbstractHeaderMapper

This commit refactors header mappers in several ways.

1. A HeaderMatcher interface has been introduced to replace the
lengthy checks in shouldMapHeader. Several implementations
of that interface are provided
2. An additional patterns has been added that maps any header
that is *not* a standard header. It uses the standardHeaderPrefix
property for that
3. The default behaviour has changed. Standard request/reply headers
are mapped as well as all non standard headers: this basically means
that custom headers are now mapped by default
4. A number of protected method that were only used to create the
instance have been removed in favour of a non default constructor.
Subclasses should provide those *static* values in their own default
constructor.
Allow to override transient headers

This commit permits to override the list of transient headers, that is
the headers that should never be mapped. The standard ErrorChannel
and ReplyChannel have also been removed as they no longer need to be
transient