[GSB] Make conformance access paths robust against non-canonical signatures.
[GSB] Make conformance access paths robust against non-canonical signatures.

With specific type-checking interleavings in large projects, the generic
signature builder for the generic signature of a protocol might not have
been built from the requirement signature of the protocol, which would
lead to malformed conformance access paths. Make this code path more
robust by building a new generic signature builder when this happens.

This is a stop-gap solution that is suitable for the Swift 4.1 branch;
a better solution would be to re-canonicalize the generic signature
builder itself somehow, but this carries more risk in the short term.

Fixes rdar://problem/37335173.

apple/swift,sschiau/swift,hooman/swift,JGiola/swift,amraboelela/swift,jopamer/swift,austinzheng/swift,benlangmuir/swift,zisko/swift,allevato/swift,jopamer/swift,shajrawi/swift,amraboelela/swift,alblue/swift,rudkx/swift,atrick/swift,karwa/swift,CodaFi/swift,airspeedswift/swift,lorentey/swift,harlanhaskins/swift,roambotics/swift,jckarter/swift,sschiau/swift,gregomni/swift,jckarter/swift,huonw/swift,tkremenek/swift,xwu/swift,benlangmuir/swift,xedin/swift,hooman/swift,atrick/swift,gribozavr/swift,jckarter/swift,airspeedswift/swift,hooman/swift,shahmishal/swift,glessard/swift,devincoughlin/swift,danielmartin/swift,danielmartin/swift,karwa/swift,gribozavr/swift,danielmartin/swift,airspeedswift/swift,shajrawi/swift,devincoughlin/swift,parkera/swift,xwu/swift,roambotics/swift,stephentyrone/swift,glessard/swift,alblue/swift,CodaFi/swift,harlanhaskins/swift,zisko/swift,shahmishal/swift,gribozavr/swift,parkera/swift,xedin/swift,roambotics/swift,glessard/swift,practicalswift/swift,shahmishal/swift,zisko/swift,airspeedswift/swift,practicalswift/swift,gregomni/swift,allevato/swift,parkera/swift,amraboelela/swift,practicalswift/swift,karwa/swift,benlangmuir/swift,parkera/swift,rudkx/swift,stephentyrone/swift,hooman/swift,benlangmuir/swift,gregomni/swift,hooman/swift,tkremenek/swift,tjw/swift,jmgc/swift,xedin/swift,practicalswift/swift,tkremenek/swift,stephentyrone/swift,xwu/swift,shahmishal/swift,natecook1000/swift,CodaFi/swift,aschwaighofer/swift,jmgc/swift,practicalswift/swift,lorentey/swift,nathawes/swift,devincoughlin/swift,sschiau/swift,harlanhaskins/swift,zisko/swift,gribozavr/swift,huonw/swift,huonw/swift,aschwaighofer/swift,practicalswift/swift,brentdax/swift,danielmartin/swift,apple/swift,hooman/swift,practicalswift/swift,lorentey/swift,danielmartin/swift,alblue/swift,xedin/swift,CodaFi/swift,lorentey/swift,allevato/swift,huonw/swift,gregomni/swift,harlanhaskins/swift,hooman/swift,amraboelela/swift,rudkx/swift,karwa/swift,stephentyrone/swift,jmgc/swift,austinzheng/swift,CodaFi/swift,gribozavr/swift,tjw/swift,allevato/swift,nathawes/swift,roambotics/swift,natecook1000/swift,xedin/swift,jopamer/swift,aschwaighofer/swift,xwu/swift,stephentyrone/swift,danielmartin/swift,jckarter/swift,allevato/swift,jopamer/swift,brentdax/swift,jckarter/swift,harlanhaskins/swift,tkremenek/swift,apple/swift,practicalswift/swift,shajrawi/swift,devincoughlin/swift,amraboelela/swift,austinzheng/swift,xwu/swift,shajrawi/swift,shajrawi/swift,shahmishal/swift,austinzheng/swift,lorentey/swift,jopamer/swift,sschiau/swift,jmgc/swift,alblue/swift,JGiola/swift,ahoppen/swift,sschiau/swift,rudkx/swift,jckarter/swift,huonw/swift,allevato/swift,natecook1000/swift,brentdax/swift,stephentyrone/swift,brentdax/swift,airspeedswift/swift,glessard/swift,amraboelela/swift,airspeedswift/swift,lorentey/swift,gribozavr/swift,shajrawi/swift,parkera/swift,shajrawi/swift,jopamer/swift,parkera/swift,harlanhaskins/swift,nathawes/swift,sschiau/swift,karwa/swift,tjw/swift,xwu/swift,ahoppen/swift,tkremenek/swift,natecook1000/swift,gregomni/swift,JGiola/swift,apple/swift,karwa/swift,benlangmuir/swift,austinzheng/swift,parkera/swift,shajrawi/swift,zisko/swift,roambotics/swift,airspeedswift/swift,natecook1000/swift,xwu/swift,CodaFi/swift,nathawes/swift,xedin/swift,aschwaighofer/swift,glessard/swift,tjw/swift,amraboelela/swift,alblue/swift,ahoppen/swift,jmgc/swift,tjw/swift,aschwaighofer/swift,atrick/swift,jmgc/swift,devincoughlin/swift,glessard/swift,JGiola/swift,gribozavr/swift,devincoughlin/swift,apple/swift,JGiola/swift,brentdax/swift,rudkx/swift,JGiola/swift,alblue/swift,danielmartin/swift,gregomni/swift,nathawes/swift,shahmishal/swift,apple/swift,xedin/swift,huonw/swift,xedin/swift,sschiau/swift,jopamer/swift,shahmishal/swift,lorentey/swift,devincoughlin/swift,nathawes/swift,nathawes/swift,allevato/swift,parkera/swift,huonw/swift,devincoughlin/swift,tkremenek/swift,CodaFi/swift,tkremenek/swift,ahoppen/swift,zisko/swift,zisko/swift,natecook1000/swift,atrick/swift,rudkx/swift,karwa/swift,karwa/swift,roambotics/swift,ahoppen/swift,harlanhaskins/swift,aschwaighofer/swift,aschwaighofer/swift,benlangmuir/swift,tjw/swift,sschiau/swift,brentdax/swift,austinzheng/swift,atrick/swift,atrick/swift,shahmishal/swift,brentdax/swift,jmgc/swift,jckarter/swift,alblue/swift,lorentey/swift,stephentyrone/swift,austinzheng/swift,natecook1000/swift,gribozavr/swift,tjw/swift,ahoppen/swift