Partially implement TCP

This is a TCP socket and it handles listening and accepting for now.
Everything is non-blocking, and listen takes a callback which is called
on each new connection.

TCP is made a friend of Loop so it can access Loop::loop, which it needs.