cleanup our socket handling code.

1. don't make the conn a thread object
2. don't log exceptions we know we are going to create to interrupt stuff.
3. check for null pointers
4. don't explode the stack reconnecting