Add support for client secrets.

[Completes #57606346]

Previously, the java client assumed the client did not have a password.  This commit adds support for client credentials.  The OauthClient.refreshToken() w/o a password field was kept for API compatibility, @ramnivas, I'll leave it up to you if we think that's necessary.