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.
please consider passing tempFolder into constructor of this class, then use @Rule TemporaryFolder from JUnit to avoid doing this folder management ourselves