Handle no blist on non-cpython

blist provides the sortedset class, but it's not currently
compatible with pypy.  This marks blist as a dependency only
when using cpython and gracefully handles blist not being
installed with a warning and the use of 'set' instead of 'sortedset'.
Fix empty queue handling when connection is full
Avoid deadlock when setting keyspace on conn
Don't submit retry when operation has already errored
Update changelog, bump version to 1.0.0b5
Bump to post-release version
String formatting when logging should be lazy
Merge pull request #47 from mattrobenolt/logs

String formatting when logging should be lazy
Use async method for setting keyspace to avoid deadlock

If we try to set the keyspace for connections in blocking way,
the event loop thread can end up being the blocked thread, resulting
in deadlock and a hung process.
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