Switch makeSSLSocketFactory() to use default system KeyStore type.

Rather than hardcoding JKS as the KeyStore type makeSSLSocketFactory() should use the system default. Android does not ship a JKS KeyStore provider but the BouncyCastle BKS format will work fine.
Adding a makeSSLSocketFactory method accepting preloaded KeyStore/KeyManagerFactory.

The existing makeSSLSocketFactory() method only supports loading a KeyStore from a classpath relative file using a provided passphrase. An additional makeSSLSocketFactory added in this commit allows the caller to provided a preloaded KeyStore/KeyManagerFactory. This can be used by callers that have a KeyStore/KeyManagerFactory loaded in memory, or from an arbitrary InputStream not on the classpath.