This commit adds the join API endpoint that will be used by the widget
to transform a greenlight URL to a BigBlueButton meeting URL.
The full flow is defined within the code itself, but it roughly boils
down to taking a greenlight URL that the user pastes it, sending it to
Dimension, Dimension making some API calls to greenlight to "join" the
meeting and retrieving a join link, before passing that back down to the
client to load.
Unfortunately, while BigBlueButton's server has a nice API, it's useless
to us if all we have is a greenlight link, so we need to do this hacky
route instead.
Note that this doesn't include webhook bridging. For now Dimension is going to support event bridging as it is generally recommended. Rooms previously bridged with webhooks will be able to unbridge.
This is so the different needs of each can be accounted for. For example, widgets are fairly unrestricted, so nothing really needs to prevent them. Bots on the other hand require an upstream token otherwise we can't get the bot IDs from Modular.