Mixin JSGlobal at runtime to avoid classpath polution.

Reference to JSGlobal is not needed anymore while compiling
the CompilerInterface. It is only needed when creating an
instance of the Compiler. This achieved by mixing in
JSGlobal with Compiler at runtime, using a ToolBox.
Dynamic class loader patching for mixin of JSGlobal.

Since CompilerInterface does the mixin at runtime, it
can also create the class-loader with the right jar at
runtime, which it now does.