refactor options parsing to allow advanced config options
automatic scoping has been removed and a scope method is offered instead
move shared schema definitions into a shared schema to allow to sync them
allow to pass multiple modules to a single exposed name
they are all executed and the last one is exported
allow to pass multiple container locations to remotes
they are tried in order, falling back to the next one when one fails
allow remotes to be promises as preparation of async externals
test module federation without library provided
test circular dependencies between containers
test multiple containers in a single build
test System.js module federation
improve fakeSystem implementation for circular dependencies and local files
<!-- Thanks for submitting a pull request! Please provide enough information so that others can review your pull request. -->
<!-- Explain the **motivation** for making this change. What existing problem does the pull request solve? -->
Addressing subtask on the Module Federation Project board
<!-- Try to link to an open issue for more information. -->
https://github.com/webpack/webpack/projects/6#card-33743655
<!-- In addition to that please answer these questions: -->
**What kind of change does this PR introduce?**
Defaulting options from webpack core output config
<!-- E.g. a bugfix, feature, refactoring, build related change, etc… -->
fix/enhancement
**Did you add tests for your changes?**
none required?
<!-- Note that we won't merge your changes if you don't add tests -->
**Does this PR introduce a breaking change?**
no
<!-- If this PR introduces a breaking change, please describe the impact and a migration path for existing applications. -->
**What needs to be documented once your changes are merged?**
ModuleFederationPlugin options and their default states
<!-- List all the information that needs to be added to the documentation after merge -->
<!-- When your changes are merged you will be asked to contribute this to the documentation -->