Demonstration code showing libssh session being driven by boost io_service.

The purpose of this demo is to act as a relay by registering a reverse
listener on an ssh server, the 'gateway' host. Connections on this listener
are extracted as channels by a call to 'ssh_forward_accept' in the session
handler. These channels are associated with a local socket which connects to
the service running on the local machine.

The initial phase of the connection, password authentication and the
registration of the remote listener is synchronous, once the session is
established, the libssh session socket is mapped into a boost socket.
This boost socket is configured to perform an asynchronous 'peek' at the
socket, as soon as there's activity the socket, the session handler is
called which simply checks for new channels and incoming data on the
existing channels.