Fix lack of timeout support in KafkaClient and KafkaConnection

Timeout was not passed correctly from ``KafkaClient`` to ``KafkaConnection`` --- and then was not actually applied to the socket in ``KafkaConnection`` itself.

To test this, try ``KafkaClient('1.2.3.4:1234', timeout=0.1)`` --- this hangs for a long time in master (as does ``KafkaConnection('1.2.3.4', 1234, 0.1)``.

This is a critical issue in production systems.