Refactor TCPSocket

Instead, expose everything that's common on Socket, as an abstract class
without a constructor.

Expose TCPSocket as a concrete class which implements it's own AF_INET
specific methods.