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. 
Sure, that exception is thrown when you call cluster.init(). I've looked into the cassandra driver code and if you haven't called init on the cluster it calls that before creating the session. Here we explicitly call it in a place we can handle it better.