[Git][ghc/ghc][wip/substitution-via-mapper] Refactor type and coercion substitution