Refactor PEM_SSLSocketProvider to get rid of bouncycastle dependency

The standard java.security classes are capable of reading PEM
certificates and using bouncycastle just to read the PKCS#1 private
key is a bit of an overkill. This commit adds a tiny class to do that
and refactors the PEM_SSLSocketFactoryProvider into two classes to
make it easy to add new providers that uses other types of input for
the certificates and host private key.