Reconnect Cassandra session on disconnect

If, for some reason, all hosts become unavailable, we should
re-establish a connection using the original contact points.

In cases where a Cassandra node goes down or moves to a different host,
Presto just keeps throwing NoHostAvailableException until the end of
time.
Format cassandra collection types as JSON

By formatting collection types as JSON, we can use Presto's JSON
functions to extract values.