First cut at a gevent connection class.

It seems to kind of work. The integration tests aren't working
right; that needs to be fixed before first. A simple test of the
basic functionality seems to work, but I've not yet tested the
recovery/retry and other execptional conditions.
Remove unused set.
Clean up.
Clean-up and refactor.
Use gevent as default connection class when monkey patched.
Bring back the timeout.
Small cleanup.
fix callback chaining benchmarking example

if there was an error in any query, callbacks_full_pipeline.py would
hang because "self.event" (or "finished_event" in the docs) would never
get set. this also fixes some minor pep8 issues.
whoops. fix that typo.
fix it there too.
Merge pull request #77 from gregbanks/fix-broken-callback-chaining-example

Fix broken callback chaining example
Fix UTF8Type serialization for already-encoded utf8

If your data is already utf-8 encoded by the time it reaches the UTF8Type.serialize() method, the encode() will fail, raising a UnicodeDecodeError.
Explicitly testing the type for Unicode before the .encode() should guarantee it doesn't fail, and in cases where it isn't Unicode, we simply test whether it's already a valid byte-encoded unicode string by attempting to decode it. 
This shouldn't add any significant overhead for strings passed in as Unicode, will prevent unnecessary failures with already-encoded Unicode strings, and raise a UnicodeDecodeError otherwise.
try..except on UTF8Type serialize for pre-encoded strings

Wrap ustr.decode() with a try..except block to handle failure to encode strings of already-encoded unicode.
Fix pep8 error in example.py
Skip OPTIONS message if cql_version, compression not set

By default compression is enabled, so the OPTIONS message will typically
be sent. But, if cql_version was not set and either compression was
explicitly disabled or no compressors are locally supported, the driver
will skip the OPTIONS message.

Related: PYTHON-47, CASSANDRA-6663
Update changelog
Update unit tests for skipping OPTIONS message
Always close sockets when defuncting connections

Under certain error conditions, this could result in an FD leak for the
socket handles.  (In my testing, they seemed to eventually be GC'ed and
closed, but this behavior is probably not dependable.)

Fixes #80
Handle custom types by full classname lookup
Add dict support for bound statements