Sema: Open-code mapTypeOutOfContext() on weird types
Associated type inference likes to wrap concrete types in
DependentMemberTypes. Calling mapTypeOutOfContext() on such
a type can crash. Open-code the transform instead.
Longer term, I want to clean up the invariants here and stop
mapping things in and out of different contexts randomly.