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

As explained above transports will take callbacks like message_received, on_error, transport_disconnected (probably one or two more) which will then they will invoke if a related event happens. I hope this will allow to make transports very simple and (providing I can make all (two) transport behave the same way) all the connects/reconnects/aborts/etc. will be handled just in one place. 

You always spot stuff! The reason why in this particular case they did not use `utility::string_t` but used the `std::string` is that websockets support two kind of messages - binary (which we don't/won't use on the client side) and utf8. As far as I understand you can just put UTF-8 string to `std::string` and things work. The `utility::string_t` is typedef for `std::wstring` on Windows  (windows uses wide characters) and `std::string` on non- Windows platforms. They have conversion functions (like the one I used in the `send` method) which I think I will have to use to convert the response accordingly so that it works on all platforms.