add `promise` external
add `import` external (uses import())
add `output.importFunctionName` option to change the `import()` function name
allow for inline external type when using arrays
fix some typings
fix namespace object behavior when using system external and accessing nested property
fix interop behavior for async dynamic modules
* Upgrade eslint
* Pin down eslint version
* Temporary fix for difference between js-beautify and eslint
js-beautify suddenly requires a space between `while` here,
but everywhere else we use it without space.
* Remove redundant rules (present in eslint:recommended)
* Add rules comparable to js-beautify rules to eslint
* Add some forgotten files
* Ugh, fix some differences between eslint and js-beautify the nuclear way
* Add back variables