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.
Actually I didn't try it, I simply follow a pattern I saw in another test on the platform. Using override makes more sent, I'll give it a try.