Add connection table to transport.go.

Track open sockets, associate addresses with sockets, and expire sockets
that have been idle for too long.
Most of a TCP transport implementation.

Problem is, parser isn't designed for streamed protocols - poor
foresight there.
Time to go off and rewrite the parser, and rebase this branch onto a
commit with a more streamable parser.