Fine tune STOMP and WebSocket related logging

Optimize logging with tracking the opening and closing of WebSocket
sessions and STOMP broker connections in mind.

While the volume of messages makes it impractical to log every message
at anything higher than TRACE, the opening and closing of connections
is more manageable and can be logged at INFO. This makes it possible to
drop to INFO in production and get useful information without getting
too much in a short period of time.

The logging is also optimized to avoid providing the same information
from multiple places since messages pass through multiple layers.

Issue: SPR-11884
Nested properties support for field-based validation

This commit validates that the changes introduced in 8221c9abc5 are
indeed allowing DirectFieldBindingResult to support nested validation
paths.

Issue: SPR-10623
Fix warning
autoGrow support in DataBinder for field access

This commit harmonizes the autoGrow feature for both regular bean
property and direct field access.

Issue: SPR-8692
ReflectionUtils caches Class.getDeclaredMethods() results; AnnotationUtils caches findAnnotation results

Issue: SPR-11882
Append suffx to user dest in SimpMessagingTemplate

Isssue: SPR-11868
Polish
SharedEntityManagerCreator immediately throws TransactionRequiredException on persist, merge, remove etc (as required by JPA spec)

Issue: SPR-11923
Add AsyncRestTemplate support to client-side MockMvc

Issue: SPR-1822
Add STOMP subscribe/unscubscribe ApplicationContext events

Issue: SPR-11813
Javadoc coverage of package metadata detection (supported for Hibernate, not needed for EclipseLink and OpenJPA)

Issue: SPR-10910
AbstractApplicationContext uses AtomicBoolean instead of synchronization for active/closed flags

Issue: SPR-11863
More WebSocket logging updates

Update WebSocketSession toString methods to include the handshake URI
and add id and URI fields to ensure they're available after close().

Log WebSocket session open and close events at INFO.

Remove trace messages for destinations that do not match.

Issue: SPR-11884
Avoid multiple invocations of afterConnectionClosed

This change ensures the state of a SockJS session is set to CLOSED
immediately after close is invoked. This avoids duplicate invocations
of afterConnectionClosed in WebSocket transport.

Issue: SPR-11884
Use SESSION_NOT_RELIABLE when no messages received

When a WebSocket session is closed after not having received any
messages, we'll use SESSION_NOT_RELIABLE to indicate to other parts
of the session closing code not to send anything further (e.g.
SockJS "Go Away!" frame).

Issue: SPR-11884
Support STOMP DISCONNECT with receipt

Issue: SPR-11599
Add support for removeOnCancelPolicy

This change removes the recently added SockJsThreadPoolTaskScheduler
and instead builds support for the removeOnCancelPolicy property in
ThreadPoolTaskScheduler and ScheduledExecutorFactoryBean.

Issue: SPR-11918
Remove JDK 1.7 guard for removeOnCancelPolicy property

Issue: SPR-11918
Fix condition in SubProtocolWebSocketHandler

Issue: SPR-11884
Fix warnings from the sniff task