Module federation generates async chunks for exposed modules, which by
default named after the internal module id. This change allows users to
assign a custom name so that the file can be statically referenced.
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