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.
Ah, I was wrong. What happens is that the default scope in `django-oauth2-provider` is `OAUTH_SCOPES[0][0]`. Hence we need to have the first element have a value `0` if we want that as the default.