Client-to-node encryption and Kerberos auth support

This pull request adds support for client-to-node encryption and kerberos auth, as well as a shortcut for building SSLOptions object (which should work for most cases).

I was working off the official guide (http://www.datastax.com/dev/blog/accessing-secure-dse-clusters-with-cql-native-protocol) with a couple of changes, namely:

* Using keystore to init both `KeyManager` and `TrustManager`. It works for my test cluster and should work in general case.
* Re-using the keystore object.
* Not specifying the source of randomness, which makes it fall back to the default implementation. I’m not sure if this is the right thing to do, so maybe it should be changed to use `SecureRandom` explicitly.

Also I’m not sure how to test this properly. Setting up encryption and kerberos is pretty painful.