Desugarer: Bring existentials in scope when substituting into record GADTs
This fixes an outright bug in which the desugarer did not bring the
existentially quantified type variables of a record GADT into in_subst
's
in-scope set, leading to #20278 (closed). It also addresses a minor inefficiency in
which out_subst
was made into a substitution when a simpler TvSubstEnv
would suffice.
Fixes #20278 (closed).