Add a state indicator for the thread wall

Helps with debugging
Fix another dispose order exception
Move KafkaTcpSocketTests to unit namespace

Add a constant for the port number
Fix dispose unwinding in KafkaTcpSocket

The dispose will now wait for the threads to unwind before disposing the
token
Fix dispose unwinding for Consumer

Wait on the polling tasks to exit before disposing the cancel token.