With the current listen() -> future<connection> interface, if a new connection
is established before the connection handler is able to re-register for the
port, we have to drop the connection.
Fix by adding a queue for accepted connections, and switching to the more
standard listen() -> accept() -> future<connection> model.
This defines adapter classes for converting from the tcp<> class to the
abstractions that applications use.
Still very inefficient due to impedance mismatch between the data types used.