Export the built-in formatters and remove the useless `makeContainer`.
Stop using removed export.
Throw an error when imports do not have matching exports.
Remove support for `module foo from "foo"`.

TC39 just removed this syntax [1].

[1]: https://gist.github.com/caridy/eefb9b104874465d4e1c
Consolidate and change strategy with the export formatters.

Now there are two formatters, since module-variable has been removed:

- commonjs: This is essentially unchanged. It still does rewriting of
  references to imports, but does not rewrite references to exports or
  locally-declared variables & functions.
- bundle: This is almost the same as what was the 'export-variable'
  formatter. The difference is that all locally-declared variables &
  functions at the top level will be renamed to avoid collision with
  top-level declarations in other modules. We do this because we've
  dropped the IFFEs that previously surrounded each module's contents,
  which will hopefully allow for even better tree-shaking and
  minification.
Add a test with cycles that immediately uses an import from it.

Also fix the commonjs formatter to work in such a case.
Ensure that import bindings cannot be assigned.
Allow missing type and message params.
Create an assertion error so the runner will know not to modify it.
Fix up some error message generation.
Throw a SyntaxError when we encounter duplicate declarations.
Merge branch 'rewrite-with-bindings' of https://github.com/square/es6-module-transpiler into rewrite-with-bindings