CachedSessionInvocationHandler includes durable flag in ConsumerCacheKey

Issue: SPR-11956
Refined CachingConnectionFactory log messages

Issue: SPR-11956
Removed outdated AspectJ comment

Issue: SPR-11957
TypedValue implements equals/hashCode based on value and TypeDescriptor

Issue: SPR-11960
Fix mutually exclusive use of CachePut and Cacheable

Commit eea230f introduced a regression by adding a support for the
"result" variable in SpEL expression for @CachePut. As such expressions
cannot be evaluated upfront anymore, any method that contains both
@Cacheable and @CachePut annotations are always executed even when
their conditions are mutually exclusive.

This is an example of such mutual exclusion

@Cacheable(condition = "#p1", key = "#p0")
@CachePut(condition = "!#p1", key = "#p0")
public Object getFooById(Object id, boolean flag) { ... }

This commit updates CacheEvaluationContext to define a set of
unavailable variables. When such variable is accessed for a given
expression, an exception is thrown. This is used to restore the
evaluation of the @CachePut condition upfront by registering "result"
as an unavailable variable.

If all @CachePut operations have been excluded by this upfront check,
the @Cacheable operation is processed as it was before. Such upfront
check restore the behavior prior to eea230f.

Issue: SPR-11955
RestTemplate accepts getMessageConverters() List on setMessageConverters again

Issue: SPR-11962
SQLStateSQLExceptionTranslator checks exception class name for timeout indication before resorting to UncategorizedSQLException

Issue: SPR-11959
Polishing
Remove Jackson dependency from TransportHandler hierarchy

Prior to this change, AbstractHttpReceivingTransportHandler had a direct
dependency on a Jacckson Exception (checking that exception in a catch
clause). This can cause issues for applications that don't have that
dependency.

This commit removes that direct dependency, still logging the
appropriate log messages using a parent exception (IOException) and
reflection.

Issue: SPR-11963
Polish SPR-11963
Polishing

Issue: SPR-11963
Polishing
MBeanExporter should not implement SmartLifecycle but rather receive a ContextRefreshedEvent-like callback

This commit removes the immediate package dependency cycle between the context and jmx packages. A specific callback arrangement will follow in time for 4.1 RC1; at this point, it's temporarily back to registration kicked off by afterPropertiesSet again.

Issue: SPR-8045
Polishing
Disable `processing` javac warnings

Set `-Xlint:-processing` to disable annotation processing warnings.
Required when building on JDK 1.8.0_20-b05 due to JDK-8039469.

Issue: SPR-11973
Fix priority semantic

Commit 5fe8f52 introduced a support for @Priority as an alternative to
@Primary but it broke the semantic of the priority value. This commit
fixes this inconsistency.

As for @Order, the lowest value means the highest priority so if
several beans are candidates for injection, the one having the lowest
value will be used.

Issue: SPR-10548
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