Add edX OAuth2 provider with OpenID Connect support

Maybe a docstring explaining the args, particularly what's supposed to be in `data`?