INT-1197: Add support for WebSockets: client side

JIRA: https://jira.spring.io/browse/INT-1197

**DO NOT MERGE YET**

For me: this PR needs JavaDocs only.
All others (namespace, server, docs etc.) might be covered within other JIRAs.

@rstoyanchev, review this, please, too.
Okay I understand better now.

This whole interaction is invalid from a STOMP perspective. The server can cannot send a STOMP MESSAGE to a client without a subscription. Clients must subscribe a specific destination. Then a server can send a message if there is match to one of the destinations the client is subscribed to. That means the server acts as a broker. In spring-messaging you can choose between a "simple broker" a "broker relay". 

In short you can't take an incoming SEND, modify only the payload, and send it as a MESSAGE back. You have to at some point create a new MESSAGE frame and fill in the right message headers. See for example what the "simple broker" does.

BTW in the case of the "broker relay" we forward messages to an external broker so in that case it's legitimate to take the message that came from the client and forward it as-is to the broker with its original headers. But when sending messages to clients you cannot do that.

All that said you're correct that content-length should never written twice. I have fixed that, see https://jira.spring.io/browse/SPR-11984.