CassandraConnector shares core driver Session objects. Previously it sha...

...red only Cluster objects and a separate Session was open per every Spark task. This had a significant performance overhead in terms of CPU, networking and memory use, because every Session object manages an internal pool of connections to all cluster nodes. Fixes #41 and #53.
I did some more testing on this, and found that it creates no additional threads. I think calling `CassandraConnector.evictCache()` before would make this test more useful.