Implement TLS session disconnecting.
Use proper callback on connection failure in TcpConnection.
Introduce DisconnectFailureCallback and rename DisconnectCallback to DisconnectSuccessCallback in Connection. Also remove some ASSERTs and fix changing Connection::State.