Add periodic node discovery with optional filters

Add support for periodic node discovery via system.peers.
Pass by HostInfo instead of the peer address

Pass the full HostInfo to the connection pool after getting new
hosts, with the caveat that seed hosts wont have valid host info.
remove SimplePool.newConn
Log errors when describing the ring
Fail fast if no seeds are available
Only set the hosts if the ring describer didnt error
Merge remote-tracking branch 'Zariel/cluster-ring-discovery' into cluster-ring-discovery
Introduce expectation for the cluster size
Set the discover hosts flag when trying to discover hosts
Let's see if ccm will work with precompiled tarballs
Let's look at what more retries buys us
Does the propagation make any difference?
Drop the default retry to 5 and make it configurable via a flag
Merge pull request #226 from relops/ccm_binary

Binary ccm
Added test case to validate issue #227
Merge pull request #229 from phillipCouto/missing_schema_error

Added test case to validate issue #227
Added code to pass on flight.err
Merge pull request #230 from phillipCouto/prep_purge_onerror

Added code to pass on flight.err to err
Merge MASTER into cluster-ring-discovery
Fix prepared statement caching bug.

It wasn't caching the prepared statement by keyspace, so if you performed
identical queries on two different keyspaces, it would use the prepared
statement from the wrong keyspace (and end up querying against the wrong
keyspace).

I added a "currentKeyspace" field to the Conn struct so the statement caching
code has it available to use as part of the cache key.