Support for providerClass, providerName and providerArg

this patch enables using a custom provider, most notably the PKCS11 provider which is used for signing using a key stored on a Crypto Token.

Example:

java net.jsign.PESignerCLI -providerClass sun.security.pkcs11.SunPKCS11 -providerArg my.conf --storetype PKCS11 --storepass 1234 --t http://timestamp.comodoca.com/authenticode --alias XYZ file

Unfortuantely it's a bit complicated to provide an automated test case, as you either need an actual token when running the test or implement an own dummy-Provider.