Transport: make the caller acknowledge the onDisconnected event.

Since the onDisconnected callback is invoked from a netty thread,
it's easy for the caller to get reconnected without realizing that
it has been disconnected.

With this patch, the transport stops sending/receiving messages
to/from the destination once the onDisconnected callback is invoked.
To reestablish the connection, the caller must explicitly call the
clear() method.
NettyTransport: remove tie breaker logic.

With this patch, the handshake fails if there is a tie and the caller
gets the onDisconnected event. It's up to the caller to call the
clear() method and re-initiate the handshake, adding some sort of
back-off logic if necessary.
NettyTransport: remove handshake retry logic.
Merge pull request #83 from m1ch1/master

transport cleanup.