Implemented a TimeUuid generator
Integrated TimeUuid

TIMEUUID cells are now loaded as TimeUuid instances.
Fixed an issue with the sequence numbers of TimeUuid

If the sequence number was incremented more than the amount of time that passed until the next call duplicates could be generated. Extremely unlikely, but still incorrect.
Moved the UUID generation logic from TimeUuid to TimeUuid::Generator
Docs for TimeUuid
Merge branch 'timeuuid'
Wrote new socket handling logic
Replaced the guts of NodeConnection with SocketHandler
SocketHandler now handles SocketErrors the right way

SocketError can be raised before @io is set, which wasn't handled before.
More efficient concatenation of ByteBuffers
CqlConnection, the new NodeConnection
Errors in Future listeners are now silenced

Before, if a listener raised an error, the remaining listeners would not be called.
The FakeServer randomizes a port
IO reactor rewrite, now protocol agnostic

Everything protocol related has been moved to CqlConnection.
Implemented ColumnMetadata#eql? and #hash
Moved NotConnectedError
Updated *Client to use the new IO reactor
The SocketHandler now unblocks the reactor on #write
Thread safety and optimization fixes to CqlConnection
Wrote tests that exercises the IO systems by talking to Redis

A very basic implementation of the Redis protocol.