Address #221 by only removing the socket if it exists
Address issue #227
Address issue #224, allow for empty strings as a routing key
Don't raise an exception when trying to send a frame to a closed connection - Issue #229

Instead log the problem and return, not sending the frame.
Fix closing connection while a channel is still open

Previously, this code would get stuck in a recursive loop trying to send
ChannelClose over a dead connection. This will ensure it tries to send
it at most once before realizing the connection is dead and stopping.
Fix timeout threshold in blocking connection

Looks like a typo in the constant used.
Update pika/heartbeat.py

_idle_byte_intervals need reset to 0 if data received.
Merge pull request #236 from nonleaf/patch-1

fix heartbeat timemout all too often
Fixed misleading warning and exception messages in BaseConnection.

Previously, the _adapter_connect method in BaseConnection would emit a
misleading warning message following a connection failure, suggesting
that a connection retry would occur.

Also, the arguments used to the AMQPConnectionError exception did not
correspond to the message produced by that exception.
Pluralised and altered the wording of the AMQPConnectionError exception.

Previously, the wording of the AMQPConnectionError exception didn't really
make sense, since it is raised even if there are no connection retries.
Fixed _adapter_disconnect in TornadoConnection class.

Previously, the implementation of _adapter_disconnect in the TornadoConnection
class would call _adapter_disconnect in it's super class before attempting to
call remove_handler. Since the super class would call self.socket.close() and
set self.socket to None, remove_handler would never be called.

This caused problems with creating new connections if a connection had been
terminated unexpectedly.
Merge pull request #237 from tristanpenman/master

Minor fixes for warning and exception messages produced by _adapter_connect.
Fixing hang when closing connection without any channel.
Fixing small typo in attributes.
Merge pull request #230 from ContextLogic/close

Fix closing connection while a channel is still open
Merge pull request #232 from ContextLogic/timeout

Fix timeout threshold in blocking connection
Merge pull request #244 from ateska/master

Fixing hang when closing connection without any channel.
Remove the process_timeouts() call in SelectConnection addressing ticket  #239
Change the string validation to basestring to address issue #231
Add a poller to the BlockingConnection to address latency issues detailed in #242

The poller checks to see if there is data on the socket to read, before calling the read method, removing blocking reads with no data on the stack from holding up other operations.