Improve KafkaConnection with more tests

Handle connection failures in KafkaConnection.reinit
Set _sock=None in close()
Also check for no _sock when checking for _dirty
Add a few more debugging log messages
Implement the skipped connection tests in test/test_conn.py
_dirty is a description of the state of our socket in _sock.  Because we dont have a _sock yet, we also dont really have a _dirty state either.  But to be consistent we should probably set also _dirty to None in close() when we set _sock to None