Add OAuth2 backend

The backend is customized to support the following features:

- Email can be used as a user identifier in the OAuth2 username field.
- Trusted clients do not require the user consent and redirect automatically.
I am not sure since it is not part of the standards (OAuth2 or OpenID Connect). I'll make a patch and see if they are interested. Good call.