Get rid of TcpListener in favor of direct socket manipulation, clean up some TcpClient code, make sure Sockets are passed around