Add WebSocketClient and WebSocketConnectionManager

This change adds a WebSocketClient abstraction and enables the use of
WebSocketHandler on the client side.
Add WebSocketMessage and WebSocketHandler sub-interfcs

There is now a WebSocketMessage type with TextMessage and BinaryMessage
sub-types. WebSocketHandler is also sub-divided into TextMessageHandler
and BinaryMessageHandler, so that applications can choose to handle
text, binary, or both.

Also in this commit, the SockJsHandler and SockJsSession interfaces
have been removed. SockJsService now accepts WebSocketHandler.
Merge branch 'websocket' into websocket-stomp
Remove StompSockJsHandler

Following the removal of SockJsHandler..