Split Connection into Connection and ConnectionThread
TCPSocket
Fix SharedPtr
Set up a TCP connection in Connection
Enable automatic usage of TCP
Use SO_REUSEADDR
Add more info to ConnectionThread logging