Update to cql-3.0.
Begin implementing node discovery
Remove `Client` monad and pass cluster enviroment around.
Back to Client monad.

Also support multiple initial contact point.
Re-add default keyspace for connections.
Add `Signal` module.
Restructure policies slightly and add round-robin.
Add host monitoring.

A node's peer table contains no status information (i.e. if the peer
node is up or down). Also hosts may come and go at any time and event
notifications over control connections may be missing. To mitigate this
problem we periodically attempt to connect to every known host and
update its status accordingly.
Only monitor on errors.
Try to cut down the number of host states.
Re-initialise when lost control is re-established.
Replace some `IORef`s with `TVar`s.
Remove `constant` policy.

Also improve `random` and `roundRobin` slightly.
Simplify policies.
Ensure background jobs are removed on finish.

Also tweak initial monitoring delay.
Add missing pool if necessary.

If a policy tells us to use some host for which no pool exists yet, we
create one and add it to our hostmap. This should not happen though,
hence we log this incident as an error.
Merge branch 'v3' into develop

Add support for CQL3 and host discovery.