Fix source maps yet again.
Fix #674: Unbox to Long does not convert null to 0L.
Simplify a bit unboxing functions.
Simplify isByte and isShort.
Remove the useless boxValue function on class data.
Review helpers for notify, notifyAll and finalize.
Use switches when doing multiple typeofs.
Remove useless calls to empty constructors in ArrayClass.
Give true (hard-coded) IR to java.lang.{Object,String}.

These were the 2 only classes in the universe that had to be
special-cased in various ways because they did not have true
IR, most notably in the optimizer. It would probably have gotten
worse in the inliner.

With this commit, the only hand-written JavaScript that we still
have is the corejsenv.js, for which it is reasonable, as it does
not take part in Scala.js-specific optimizations.
Merge pull request #672 from sjrd/fix-source-maps-again

Fix source maps yet again.
Merge pull request #675 from sjrd/cleanup-env

Cleanup scalajsenv.js
Merge pull request #673 from sjrd/object-and-string-as-ir

Give true (hard-coded) IR to java.lang.{Object,String}.