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
sure, if we can just call close() and set _sock to None anytime there's a connection problem, then there's no need to have _dirty.