An app-level plugin: a self-contained bundle of services, resources, and
behaviour that can be installed into a DI scope at runtime and removed
cleanly later. Use these to make whole features pluggable — themes, auth
providers, analytics backends, optional integrations, etc.
A collection of Plugins with an optional DI host. When a host is
provided, register installs each plugin into the host scope via
host.installPlugin(plugin) — services, resources and child scopes the
plugin sets up are torn down automatically on uninstall.