Webhooks: store meeting ID mappings in a global model
Webhooks: persist data to redis

Save hooks and meetingID mappings to redis and get them back when the
application starts.
Still missing a way to remove old data in case the app loses events (e.g.
a hook for a specific meeting might stay on redis forever if the app
lost the meeting_destroyed event).
Webhooks: better intervals for retying failed callbacks

Will try again a number of times for about 5min and then give up. On giving
up, the hook is removed.
And a few fixes for saving and loading data on redis.
Webhooks: use external meeting ID as key in the mappings

It changes less than the internal meeting ID. An application can subscribe
to an external ID and use the hook for several different meetings that will
have the same external ID but different internal IDs.