Add handshake

TCPConnectionManager now does a proper handshake and ensures that only one
connection exists between two modules