More detailed log messages around connections
Add timeouts to conn creation, blocking messages

Instead of waiting indefinitely for a new connection
to initialize, a timeout is used when blocking for the event.

Likewise, for blocking messages (used by the control connection
and when setting keyspaces), set a timeout to avoid blocking
indefinitely in corner cases.
Handle exceptions when erroring callbacks

In case any of the callbacks don't properly handle exceptions,
handle the exceptions (with a log message) and continue erroring
out the rest of the callbacks.

Related to #48
Don't close asyncore connection on empty read
Grace period before new conns can be trashed

New connections were frequently being trashed before enough
time had passed to put sufficient load on them.  This adds
a basic grace period during which new connections cannot
be trashed, regardless of how few operations they have
in flight.
Raise exception conn is closed mid-initialization
New run_in_executor decoractor for Cluster
Maintain listener list within Cluster
Avoid deadlock when nodes go up and down