WCF (Websocket Communication Foundation) - a skeleton for websocket transport

No. I would like to try to make the transport as dumb as possible and leave it to the caller (connection) to decide what to do. The transport will take callbacks - message_received, transport_disconnected, error etc. and this will be the responsibility to deal with it. It's different from what we have in the code now where the transport has to be aware of all that is going on and the responsibility is shared between the connection and the transport. I don't know yet if this is feasible but I don't see anything obvious that would make it impossible. 
With regards to `m_connect_tce` - I need to start the receive loop after the websocket connects to the server successfully and therefore I cannot just return the task I get from the `.connect` call. The init sequence is supposed to look as follows:
- caller (connection) creates a tce/tcs and returns to the user
- caller (connection) invokes transport->connect()
- transport connects and starts the receive loop
- whenever a message is received the transport invokes the message_received handler it got from the caller (connection)
- caller(connection) waits until it gets the "S" :  1 message (it should buffer other messages it receives before the "S":1)
- once the caller (connection) gets "S":1 it sends the start http request
- once the start response is received the result for the tcs/tcs is set to unblock the user. 

I used 'caller (connection)' because I don't know yet if I will have a separate class (like the `TransportInitializationHandler` or everything will happen in the connection implementation).