Add Basic OpenID Connect support including UserInfo endpoint

In the LMS. PR almost ready. I left it there because it requires LMS models that are not available here, which makes is difficult for testing. I saw two options:

1. Put the LMS handler here, skipping tests here, but making sure they run in the LMS.
2. Put the LMS handler in the LMS, and run its tests as part of the LMS.

I choose 2. What is your opinion?