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. 
I've seen many cases where the client throws `NoHostAvalaibleException` for unexplained reasons.  It may be related to how our service discovery works, but I haven't invested much time into debugging it.