Add STOMP/WebSocket stats collection

This change adds collection of stats in key infrastructure components
of the WebSocket message broker config setup and exposes the gathered
information for logging and viewing (e.g. via JMX).

WebSocketMessageBrokerStats is a single class that assembles all
gathered information and by default logs it once every 15 minutes.
Application can also easily expose to JMX through an MBeanExporter.

A new section in the reference documentation provides a summary of
the available information.

Issue: SPR-11739
STOMP and WebSocket messaging related logging updates

This change removes most logging at INFO level and also ensures the
amount of information logged at DEBUG level is useful, brief, and
not duplicated.

Also added is custom logging for STOMP frames to ensure very readable
and consise output.

Issue: SPR-11934
Fix left-over merge issue from previous commit
Fix UriComponentsBuilder.fromUriString parsing error

This commit fixes cases where part of the URI was mistaken for the
userinfo when:
* the URI did not contain any path
* the query string contained the "@"

Issue: SPR-11964
Add support to reference external HandlerMethodArgumentResolver beans which might contain already configured instances (e.g. through a 3rd-party namespace handler).

 Users can not mix and match between "inner bean" argument resolver and "external bean" argument resolver. This commit only focuses only on argument-resolver, while the support could be extended to return value handlers as well.

 Issue: SPR-11927
Fix white space issue
Support <ref> for arg resolvers return value handlers

Issue: SPR-11927
DefaultBeanDefinitionDocumentReader evaluates profile attribute only in beans namespace

Issue: SPR-11975
MappingJackson2JsonView/MessageConverter calls non-deprecated Jackson 2.1+ createGenerator API

Also removing workaround for https://github.com/FasterXML/jackson-databind/issues/12 (fixed in 2.1+)

Issue: SPR-11262
Polishing
ExceptionTypeFilter and InstanceFilter live in util package itself now

Issue: SPR-9616
BackOff abstraction lives in util.backoff subpackage now

Issue: SPR-11746
Subpackage rearrangements within 4.1's jms-messaging alignment

Issue: SPR-10873
Polishing
Removed unused import (which indicated a package cycle)
Add after completion callbacks to ChannelInterceptor

Issue: SPR-11966
Test ASM5's bytecode parsing of INVOKESPECIAL/STATIC on interfaces

Issue: SPR-11979
MBeanExporter implements newly introduced SmartInitializingSingleton callback interface

Issue: SPR-8045
Add AppCacheResourceTransformer

This change adds a new ResourceTransformer that helps handling resources
within HTML5 AppCache manifests for HTML5 offline application.

This transformer:
* modifies links to match the public URL paths
* appends a comment in the manifest, containing a Hash (e.g. "# Hash:
9de0f09ed7caf84e885f1f0f11c7e326")

See http://www.whatwg.org/specs/web-apps/current-work/multipage/offline.html#offline
for more details on HTML5 offline apps and appcache manifests.

Here is a WebConfig example:

  @Override
  public void addResourceHandlers(ResourceHandlerRegistry registry) {

    AppCacheResourceTransformer appCacheTransformer =
          new AppCacheResourceTransformer();

      registry.addResourceHandler("/**")
          .addResourceLocations("classpath:static/")
          .setResourceResolvers(...)
          .setResourceTransformers(..., appCacheTransformer);
  }

Issue: SPR-11964
Rename AppCacheResourceTransformer

This change renames AppCacheResourceTransformer to
AppCacheManifestTransfomer, in order to avoid confusion between this
transformer and the CacheResourceTransformer (which caches
transformations done by the chain to save CPU/memory at runtime).

Issue: SPR-11964