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.