SI-7598 Make erasure of isInstanceOf[X.type] $outer-aware

Type tests against Singleton-, This- and, Super- types are translated
into reference equality checks in erasure.

For instance:

    class C { object X; X.isInstanceOf[X.type] }

Results in:

    class C { object X; X eq X }

But, the term tree created to refer to the object behind the
SingleType was constructed without being explicit about outer
pointers.

After typer:

    class C { object X; class Inner { X.isInstanceOf[X.type] } }

After explicitouter:

    class C { object X; class Inner($outer: C) { $outer().X().isInstanceOf[X.type] } }

After erasure:

    class C { object X; class Inner($outer: C) { $outer().X() eq Outer.this.X() } }

That leads to a crash in `icode`.

This commit runs the explicit outer tree transformer over the argument
to `eq`.

Review by @gkossakowski or @JamesIry