[GSB] Eliminate redundant code in self-derived source checking.
[GSB] Eliminate redundant code in self-derived source checking.

Reimplement isSelfDerivedSource() in terms of
getMinimalConformanceSource(), because they're fundamentally the same
thing. Also, replace the custom removeSelfDerived() implementation
within checkConformanceConstraints() by improving the common
checkConformanceConstraints() and teaching it to work on top of
getMinimalConformanceSource().

There is some hackery in here to make getMinimalConformanceSource()
behave like the now-removed isSelfDerivedSource(). It's all marked
with FIXMEs while I sort out the general form of "self-derived" for
same-type constraints. It's not as easy as I had hoped ;)

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