Fix mapOuter to be type-preserving
Fix mapOuter to be type-preserving

Only outer references that point to the same class as the outer parameter should be
mapped. Other outer references should be left alone. Such references can appear
after the initial supercall of a constructor.

svalaskevicius/dotty,dotty-staging/dotty,lampepfl/dotty,dotty-staging/dotty,sjrd/dotty,VladimirNik/dotty,densh/dotty,svalaskevicius/dotty,densh/dotty,som-snytt/dotty,spetz911/dotty,vsalvis/dotty,yusuke2255/dotty,auvik/dotty,auvik/dotty,sjrd/dotty,angi2/dotty,lampepfl/dotty,spetz911/dotty,sjrd/dotty,folone/dotty,lampepfl/dotty,sjrd/dotty,som-snytt/dotty,som-snytt/dotty,lampepfl/dotty,sjrd/dotty,dotty-staging/dotty,reactormonk/dotty,dotty-staging/dotty,vsalvis/dotty,VladimirNik/dotty,angi2/dotty,lampepfl/dotty,reactormonk/dotty,som-snytt/dotty,yusuke2255/dotty,folone/dotty,som-snytt/dotty,dotty-staging/dotty