Add edX OAuth2 provider with OpenID Connect support

We share the same concern. We decided to postpone optimizing this part given that the number of people with `is_staff=True` is low, and that we are using the same method used by the LMS and Studio to enumerate courses. 

We will also follow up with a load test once we get the deployment scripts ready.