Use a dedicated IR node for Object.getClass().

Because it cannot be expressed in terms of anything else,
even for values known to be Scala.js objects.
Use normal methods instead of helpers in the IR.
Give proper IR implementations of hijacked classes.

This allows the optimizer to handle methods of hijacked
classes in a completely normal way, in particular equals
(which previously had a dedicated foldEquals handler),
but also toString, compareTo, etc.

When methods are not inlined, they remain, as usual, as
normal Apply nodes, with a receiver that is a hijacked
class. This will cause, as before, the desugaring to
produce calls to the helpers. So, methods that cannot be
inlined are redirected normally to helpers.
Merge pull request #1190 from sjrd/helpers-as-normal-methods

Use normal methods instead of helpers in the IR