Polish WebSocketSession

Update methods available on WebSocketSession interface.
Introduce DelegatingWebSocketSession interface.
Fix configuration issues in DefaultSockJsService
Add HandshakeInterceptor

A HandshakeInterceptor can be used to intercept WebSocket handshakes
(or SockJS requests where a new session is created) in order to
inspect the request and response before and after the handshake
including the ability to pass attributes to the WebSocketHandler,
which the hander can access through
WebSocketSession.getHandshakeAttributes()

An HttpSessionHandshakeInterceptor is available that can copy
attributes from the HTTP session to make them available to the
WebSocket session.

Issue: SPR-10624
Support 'empty' StreamSource in Jaxb2Marshaller

Added support for StreamSources that do not have a InputStream or
Reader, but do have a System ID.

Issue: 10828
Add canRead/Write to MarshallingHttpMessageConverter

Issue: SPR-10463
Remove Cookie support from ServerHttpRequest

Although ServletHttpRequest provides access to Cookies, other
implementations may not. At the moment this was only needed
for SockJS to check the value of the JSESSIONID cookie. This
is now down by parsing the raw cookie values locally.

If comprehensive cookie support is to be added, we should
probably consider HttpHeaders as a potential candidate.
Remove qetQueryParams from ServerHttpRequest