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.