Add OAuth2 as an alternative to JWT tokens for the StreamElements service #1093
Description
Description
Currently the StreamElements service uses JWT token authentication. This is easy for the user because the token can be copied from the StreamElements dashboard without much setup.
JWT tokens have a disadvantage: they get invalid after some time and with StreamElements there is no way to refresh them without the user going to the dashboard again (at least as far as I know).
In contrast using OAuth2 allows for refreshing of the token. Initial setup is more complicated because the user has to register a OAuth2 API but longer term it is less maintenance as the token can be auto-refreshed. So we should add this as another option and leave the user the choice between the two authentication methods.
References
StreamElements OAuth2 docs: https://dev.streamelements.com/docs/api-docs/cd02cda5171ea-o-auth2