This allows plugins to optionally define which stream metadata variables
are available, with an optional comment for each variable.
`$metadata` can be repeated multiple times, once for each supported
variable, and it must be set immediately after the mandatory `$type`.
The supported variables must be defined in the following order:
- id
- author
- category
- title
The optional comment is separated by a simple space character, but it
is rendered differently in the docs.
- Raise `StreamlinkDeprecationWarning` when `is_global=True`
- Remove all global plugin arguments and replace them with simple
option lookups on the Streamlink session instance
- Remove global argument detection in custom Sphinx plugins extension
- Remove supported plugins list from custom Sphinx argparse extension
and remove respective setup from `setup_plugin_args` in the CLI module
- Add deprecation note to the docs
- Update tests
- Check whether builtin plugins define global plugin arguments
- Capture deprecation warnings
Implement custom "plugins" sphinx extension which parses metadata from
plugin files and which outputs a list of plugins with datalists that
include the annotated metadata in addition to plugin arguments and
links to plugin files + issues on GitHub.
Add plugin metadata linting tests and remove old plugin matrix tests.