Pass in cluster to create Cassandra

Allow a cluster to be passed in when creating the Cassandra object. This allows users to specify a lot of other options (authentication, compression, etc) outside of the metrics-cassandra library. Move reconnect attempts into creation of cluster. I debated creating two static factory methods that could call the came constructor but went this route to maintain backwards compatibility. 
In the case where we have to build the cluster, we can quickly check to see if nodes are available and retry connecting if they are not. This means we don't have to rebuild the cluster object later when getting a session.