OAuth authentication

Added support for the "Client Credentials Grant" of the OAuth 2 spec.
This will allow tenant administrators to register a client either for themselves
or a user they trust. Once a client has been setup for a user, anyone who has
the client id/secret will be able to interact with OAE on behalf of that user.

This was created with the "Authorization Code Grant" in mind, so we should be able
to support the more typical OAuth flow (webapp redirects to OAE, user grants webapp,
OAE redirects back to webapp) as well.