Use normal methods instead of helpers in the IR

Hijacked classes are now much more normal than they used to be. Methods can be called on them, they have proper IR that can optimized in a regular way, etc. Basically, the fact that they are hijacked only has the following consequences:

* They do not have constructors. Instead, their "instances" are values of primitive types (or whatever representation thereof, e.g., `RuntimeLong` for longs).
* `Apply` nodes to maybe-hijacked classes that survive the optimizer are desugared into calls to helpers.
* The `ScalaJSClassEmitter` does not emit code for them (only class data).

Basically, this means that the IR of hijacked classes is only ever used by the optimizer if it can inline the methods. Otherwise, the desugaring ignores it.
Oh, you meant a method in the companion object. Well that would make the method on the instance inlineable and call a method on the companion that is not part of the actual public api of `Double`. And that thing would be less efficient than the helper that desugar is calling. So that's not a good idea. 

I did think about it before you mentioned it ;-) but dismissed the idea.