Rewrote socket connection code to support timeouts
Now doing non-blocking reads

Still not non-blocking in any meaningful sense, but we're slowly getting there
Rewrote Connection#execute! using a pipe as a semaphore

Ruby's locking primitives are really crappy.
Further towards non-blocking IO
Fix in bin/cqlexec, had forgot a !
Proper non-blocking IO that handles requests pipelining
Removed the per-connection request queue in favour of the existing global
Made sure that all bytes of a frame are always consumed
Added support for error details
Extracted error responses with an error code to their own class
Un-commented pending tests (the pending statement has the same effect)
Added support for EVENTs
Updated bin/cqlexec to display events