Remove the field originalName from StringLiteral.

It is completely useless. Originally, when I first introduced
source maps, Scala.js method names were still encoded in crazy
strings with bracket-selects. At the time it seemed logical to
support original names for StringLiteral because of this, even
though there was no evidence whatsoever that original names were
supposed to mean something for string literals in source maps.
Now, since there isn't any more evidence of this, and all Scala.js
names are encoded as identifiers, there is no point in keeping
this field.
Fix #1104: Separate IRTrees and JSTrees.

This does introduce some code duplication. Mostly in the Printers
for IR trees and JS trees. But not much otherwise.

It does bring more safety, especially around JSDesugaring, obviously.

ScalaJSClassEmitter turned out to require major transformations,
because it was an IR to half-IR/half-JS pass. I turned it into a
pass IR to JS, and it calls directly JSDesugaring for the inner
parts that it receives as IR (the body of the methods, mostly).

The JS trees and related tools (their printers, JSDesugaring,
ScalaJSClassEmitter) have been moved away from the ir package
into tools.javascript. This reduces the footprint of the
scalajs-compiler, which does not need all this stuff.
Merge pull request #1125 from sjrd/separate-ir-js-trees

Fix #1104: Separate IRTrees and JSTrees.