fixes #24571 - support private keys from new google developer console

the new developer console provides private keys in a different way, then the old google cloud console. one way is a .json file that can be downloaded in the console. the other option is to use a .p12 keystore to authenticate a service account.

this pull request improves the private key handling. the user only needs to upload one of the mentioned private key files.

see [Jenkins Issue #24571](https://issues.jenkins-ci.org/browse/JENKINS-24571) for more details.
KeyType seems confusing...  How about QualifiedPrivateKeyFile?  A tuple of <email, key> is a credential, but that word is too overloaded in this context.

JsonKeyType and P12KeyType would be {Json,P12}QualifiedPrivateKeyFile here.  A mouthful I know, but I believe will make things more readable.