[TypeResolver] Fix a few corner cases in type resolution for explicit existential types.
[TypeResolver] Fix a few corner cases in type resolution for explicit
existential types.

Use the correct type resolver context when resolving SIL metatypes
and function types, and diagnose an error if an explicit existential
type appears in a protocol composition.

JGiola/swift,apple/swift,ahoppen/swift,JGiola/swift,ahoppen/swift,atrick/swift,rudkx/swift,JGiola/swift,gregomni/swift,rudkx/swift,rudkx/swift,apple/swift,roambotics/swift,JGiola/swift,benlangmuir/swift,roambotics/swift,benlangmuir/swift,atrick/swift,gregomni/swift,apple/swift,rudkx/swift,glessard/swift,ahoppen/swift,gregomni/swift,ahoppen/swift,benlangmuir/swift,JGiola/swift,benlangmuir/swift,roambotics/swift,atrick/swift,atrick/swift,apple/swift,apple/swift,apple/swift,glessard/swift,glessard/swift,benlangmuir/swift,atrick/swift,ahoppen/swift,rudkx/swift,glessard/swift,ahoppen/swift,glessard/swift,glessard/swift,roambotics/swift,atrick/swift,gregomni/swift,gregomni/swift,roambotics/swift,JGiola/swift,rudkx/swift,gregomni/swift,roambotics/swift,benlangmuir/swift