Add abstract_protocol_handler, message_stream
Use message_stream in PeerImp