Fix #1104: Separate IRTrees and JSTrees.

I know, but I don't really see how to factor it out. This version calls `desugarJavaScript` in the middle, while the one in `Closure` needs to use the same instance of `JSDesugar`. Well I could replace `desugarJavaScript` by a function parameter to the factored method, but I thought it could make the whole thing more obscure, not more elegant.