consistent_socket: partial implementation, contains minor bug:

In message_socket.cpp:59,66,81
        temporary callback variable passed to IOService::post may be
    freed after posted callback is done. However this callback
    contains Shared ptr to ConsistentSocket, thus invoking destructor
    of ConsistenSocket and its component MessageSocket, which locks
    up in destructor. Deadlock.
        Fix: this is caused by complex logic of coroutine, mix
    MessageSocket code into ConsistentSocket