Merge pull request #1179 from sjrd/intrinsics

Get rid of all helpers except methods on maybe-hijacked classes.
Implement String methods in an object rather than as a trait.

This fixes the mess that RuntimeString was as a trait. It was
very hacky and very dependent on the implementation details.

Now, RuntimeString is only an object, and its methods take an
explicit `thiz` parameter that stands for the String being
operated on.

Most methods are inlineable one-liners. For the others, Closure
turn them into static methods anyway.
Merge pull request #1182 from sjrd/runtime-string-as-an-object

Implement String methods in an object rather than as a trait.
Fix #1183: Remove JSPrimitives NTR_MOD_SUFF, NTR_NAME_JOIN
Merge pull request #1185 from gzm0/del-primitives

Fix #1183: Remove JSPrimitives NTR_MOD_SUFF, NTR_NAME_JOIN
Fix #1172: Also run checksizes over gzipped sizes
Merge pull request #1188 from gzm0/gzip-checksizes

Fix #1172: Also run checksizes over gzipped sizes
Reorganize the construction of ScalaJS in scalajsenv.js.

Instead of building one big literal object, we add properties
one at a time. This doesn't make a difference to Closure, but
now we can define later fields in terms of earlier fields.
In toolsJS test, do not inherit __ScalaJSEnv.

Otherwise, multiple ScalaJS objects will share their env
field, each will try to set things in it and freeze it,
which is no good.
Make the environment info a global field directly.

Also, set its field `exportsNamespace` after the fact with
what we chose to use.

Finally, we also freeze the environment info object when we're
done with initializing Scala.js, to prevent anyone from modifying
it after that.
Fix #1184: Incorporate JSGlobal as a field of environment info.

This gets rid of an IR node and a compiler primitive.

Desugaring still applies a shortcut to simplify
ScalaJS.env["global"]
as
ScalaJS.g
which is quite important, given how much this field is used.
Merge pull request #1187 from sjrd/global-in-envinfo

Fix #1184: Incorporate JSGlobal as a field of environment info.
Fix #1169: Make IR printer print cases of match tree nicely

It now looks like this:

    match (x1) {
      case 1 | 2 | 3:
        mod:s_Predef$.println__O__V("low");
      case 4:
        mod:s_Predef$.println__O__V("four");
      default:
        mod:s_Predef$.println__O__V("other");
    }
Merge pull request #1189 from gzm0/fix-ir-printer-match

Fix #1169: Make IR printer print cases of match tree nicely
Avoid crashing for classpath elements that do not exists on the file system.

Added DummyVersion constant value, exists() to detect file that does not exists and getDummyVersion to provide a string version for a dummy file.
Implemented DummyVersion and isDummy in physical and node file systems.
Added simple ClasspathElementsTraverser tests using the PhysicalFileSystem.