Renamed $ScalaJSEnvironment into $ in local scope.

This saves 5 % on the size of the generated code!
Short accessors for constructors and module instances.

$.c["java.lang.Object"] is the constructor for Object.
$.m["scala.Predef$"] is the Predef module instance.

This saves another 3 % on the generated code.
Completely reviewed constructors and their bridges.

Now for each class we have *two* constructors, which share
the same 'prototype' property. One is for use by Scala.js,
the other is the JS bridge.

Both are used with the 'new' keyword, which is optimized
better than Object.create in most implementations.

Also, both can be used for instanceof tests in JavaScript,
if necessary.

Currently prototype.constructor is set to the Scala.js
constructor. This should probably be reviewed.