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.
I'm not sure if this object is usable after this, may be better to rethrow after the message?

the DataBoundConstructor is called after form submission (loading from disk is through Java serialization I believe).  so if we rethrow right here the user form submission will fail which is probably the right thing.