* Add the 'windows' parameter to the initializeEngine function.
* Wire the initEngine configuration into the engine.
* Extend configuration.dart
* Reuse JsFlutterConfiguration JS-interop as the configuration source
both for initEngine, and the window.flutterConfig object.
* Add 'renderer' and 'targetElement' fields to the
JsFlutterConfiguration object.
* Modify the `FlutterConfiguration` object so that it supports more
than one configuration source. Return the first non-null value that
was most recently set, or fall back to a default.
* Silence bootstrap initialization log to debug level.
* targetElement to hostElement
* jsParams -> runtimeConfiguration
* Add configuration_test.dart
* Add test to check init stores config.
* Renamed test so it actually runs.
* Update configuration object. Make it throwy at init/override.
* Use new config object, tweak some docs.
* Tweak warn/assert messages.
* Some renaming:
* runtimeConfig -> configuration (as unnamed function parameter)
* runtimeConfiguration -> jsConfiguration (as named function parameter,
to prevent clashes with the configuration singleton in the engine code)
* initEngine -> initializeEngine (because no need to abbreviate that)
* Ensure init test does not use global config.
* Sort JsFlutterConfiguration getters alphabetically.
* Addresses PR comments.