The future returned from IoReactor#stop resolves to the reactor
Lock twiddling

Trying to avoid locking in the IO loop. Since changes to the list of sockets is something that happens rarely we can make a copy of the list when we add something, which means that we don't need to guard the access of the list in the loop. We only need to lock over the copy and reassignment to the local variable, so that two threads can add sockets at the same time (and if the loop misses one of the additions it doesn't matter, it will pick it up on the next tick).
Started on documentation for the IO reactor.
Renamed Cql::Io::CqlConnection Cql::Protocol::CqlProtocolHandler
Continued the renaming of connections to protocol handlers
Renamed Cql::Io::SocketHandler Connection
Better docs for Client and PreparedStatement
Docs for Connection and IoReactor
A cleaner implementation of the Redis protocol in the IO integration tests