CLJS-1360: Refactor JS module processing to work with recent Google Closure compiler changes
CLJS-1360: Refactor JS module processing to work with recent Google Closure compiler changes

The functionality of the ES6ModuleLoader has been rewritten, including
some functionality that we use, such as the toModuleName method and the
constructor of the ES6ModuleLoader. We now need to pass all modules of
the same type to the Compiler, but are still converting only one module
at a time. Also, it's safer to just get the module name from the
converted lib directly instead of the method toModuleName.

This change supports both versions of the ES6ModuleLoader for
now. Once a new version of the Google Closure compiler gets released, we
can probably remove support for the older version. Changes to the
ES6ModuleLoader can be seen here: https://github.com/google/closure-compiler/pull/1043.

mstang/clojurescript,mstang/clojurescript,mstang/clojurescript