Revert "Remove requirement-collection and generic signature creation logic from Sema."
Revert "Remove requirement-collection and generic signature creation logic from Sema."

This reverts r23031; we're going to rely on this older logic a bit longer.

Swift SVN r24332

OscarSwanros/swift,amraboelela/swift,airspeedswift/swift,jckarter/swift,alblue/swift,adrfer/swift,austinzheng/swift,mightydeveloper/swift,slavapestov/swift,tinysun212/swift-windows,djwbrown/swift,xedin/swift,shahmishal/swift,huonw/swift,airspeedswift/swift,LeoShimonaka/swift,karwa/swift,calebd/swift,benlangmuir/swift,roambotics/swift,kstaring/swift,xedin/swift,xwu/swift,rudkx/swift,cbrentharris/swift,tinysun212/swift-windows,airspeedswift/swift,brentdax/swift,aschwaighofer/swift,kusl/swift,jmgc/swift,parkera/swift,sschiau/swift,kstaring/swift,arvedviehweger/swift,felix91gr/swift,SwiftAndroid/swift,xedin/swift,tkremenek/swift,tjw/swift,kusl/swift,ben-ng/swift,nathawes/swift,arvedviehweger/swift,sschiau/swift,practicalswift/swift,russbishop/swift,therealbnut/swift,modocache/swift,atrick/swift,uasys/swift,djwbrown/swift,felix91gr/swift,JGiola/swift,mightydeveloper/swift,shajrawi/swift,adrfer/swift,austinzheng/swift,IngmarStein/swift,kstaring/swift,bitjammer/swift,harlanhaskins/swift,gribozavr/swift,calebd/swift,gmilos/swift,codestergit/swift,nathawes/swift,shajrawi/swift,ahoppen/swift,jopamer/swift,nathawes/swift,ken0nek/swift,kperryua/swift,dduan/swift,sschiau/swift,atrick/swift,gmilos/swift,kentya6/swift,zisko/swift,gmilos/swift,tardieu/swift,aschwaighofer/swift,karwa/swift,uasys/swift,ahoppen/swift,johnno1962d/swift,Ivacker/swift,airspeedswift/swift,aschwaighofer/swift,frootloops/swift,deyton/swift,danielmartin/swift,xedin/swift,russbishop/swift,tjw/swift,gottesmm/swift,MukeshKumarS/Swift,felix91gr/swift,kentya6/swift,adrfer/swift,gottesmm/swift,therealbnut/swift,KrishMunot/swift,codestergit/swift,slavapestov/swift,sschiau/swift,amraboelela/swift,IngmarStein/swift,Ivacker/swift,shahmishal/swift,brentdax/swift,mightydeveloper/swift,jmgc/swift,johnno1962d/swift,harlanhaskins/swift,dduan/swift,airspeedswift/swift,JaSpa/swift,Jnosh/swift,jopamer/swift,nathawes/swift,khizkhiz/swift,sschiau/swift,lorentey/swift,ben-ng/swift,emilstahl/swift,kperryua/swift,xedin/swift,kentya6/swift,practicalswift/swift,swiftix/swift,shajrawi/swift,shahmishal/swift,SwiftAndroid/swift,milseman/swift,milseman/swift,sschiau/swift,manavgabhawala/swift,zisko/swift,CodaFi/swift,deyton/swift,bitjammer/swift,austinzheng/swift,therealbnut/swift,deyton/swift,swiftix/swift.old,devincoughlin/swift,gregomni/swift,allevato/swift,slavapestov/swift,SwiftAndroid/swift,return/swift,return/swift,tkremenek/swift,Jnosh/swift,zisko/swift,practicalswift/swift,MukeshKumarS/Swift,felix91gr/swift,JaSpa/swift,alblue/swift,tjw/swift,uasys/swift,frootloops/swift,parkera/swift,shajrawi/swift,parkera/swift,dduan/swift,JaSpa/swift,emilstahl/swift,stephentyrone/swift,allevato/swift,hughbe/swift,xwu/swift,karwa/swift,devincoughlin/swift,OscarSwanros/swift,sschiau/swift,calebd/swift,return/swift,hooman/swift,shajrawi/swift,modocache/swift,jopamer/swift,kusl/swift,brentdax/swift,dreamsxin/swift,arvedviehweger/swift,shahmishal/swift,CodaFi/swift,sschiau/swift,johnno1962d/swift,tjw/swift,LeoShimonaka/swift,sdulal/swift,calebd/swift,therealbnut/swift,sdulal/swift,swiftix/swift.old,hughbe/swift,hughbe/swift,benlangmuir/swift,gottesmm/swift,djwbrown/swift,Jnosh/swift,shajrawi/swift,manavgabhawala/swift,jtbandes/swift,tardieu/swift,emilstahl/swift,cbrentharris/swift,emilstahl/swift,CodaFi/swift,danielmartin/swift,kperryua/swift,xedin/swift,djwbrown/swift,parkera/swift,gribozavr/swift,kusl/swift,sdulal/swift,zisko/swift,kstaring/swift,codestergit/swift,parkera/swift,benlangmuir/swift,tardieu/swift,OscarSwanros/swift,lorentey/swift,alblue/swift,rudkx/swift,kusl/swift,tardieu/swift,LeoShimonaka/swift,hooman/swift,shahmishal/swift,SwiftAndroid/swift,huonw/swift,modocache/swift,emilstahl/swift,glessard/swift,OscarSwanros/swift,tardieu/swift,jtbandes/swift,huonw/swift,shahmishal/swift,xwu/swift,milseman/swift,OscarSwanros/swift,lorentey/swift,kentya6/swift,KrishMunot/swift,JaSpa/swift,therealbnut/swift,deyton/swift,hughbe/swift,SwiftAndroid/swift,xwu/swift,natecook1000/swift,return/swift,harlanhaskins/swift,gottesmm/swift,modocache/swift,allevato/swift,huonw/swift,tinysun212/swift-windows,devincoughlin/swift,jmgc/swift,OscarSwanros/swift,jmgc/swift,hooman/swift,adrfer/swift,brentdax/swift,bitjammer/swift,gmilos/swift,cbrentharris/swift,modocache/swift,KrishMunot/swift,dduan/swift,codestergit/swift,Jnosh/swift,harlanhaskins/swift,stephentyrone/swift,khizkhiz/swift,benlangmuir/swift,jmgc/swift,ken0nek/swift,danielmartin/swift,dduan/swift,hughbe/swift,ben-ng/swift,CodaFi/swift,frootloops/swift,kentya6/swift,JGiola/swift,khizkhiz/swift,swiftix/swift.old,hughbe/swift,slavapestov/swift,gregomni/swift,brentdax/swift,KrishMunot/swift,zisko/swift,roambotics/swift,Ivacker/swift,calebd/swift,swiftix/swift,natecook1000/swift,sdulal/swift,codestergit/swift,gottesmm/swift,bitjammer/swift,jopamer/swift,shajrawi/swift,jtbandes/swift,arvedviehweger/swift,stephentyrone/swift,nathawes/swift,hooman/swift,xedin/swift,swiftix/swift.old,frootloops/swift,frootloops/swift,therealbnut/swift,jopamer/swift,russbishop/swift,tkremenek/swift,cbrentharris/swift,karwa/swift,johnno1962d/swift,JaSpa/swift,lorentey/swift,kusl/swift,airspeedswift/swift,tardieu/swift,khizkhiz/swift,uasys/swift,karwa/swift,SwiftAndroid/swift,russbishop/swift,aschwaighofer/swift,sdulal/swift,kentya6/swift,hooman/swift,manavgabhawala/swift,aschwaighofer/swift,amraboelela/swift,slavapestov/swift,CodaFi/swift,cbrentharris/swift,emilstahl/swift,tjw/swift,MukeshKumarS/Swift,allevato/swift,emilstahl/swift,manavgabhawala/swift,LeoShimonaka/swift,bitjammer/swift,LeoShimonaka/swift,felix91gr/swift,tkremenek/swift,jckarter/swift,kstaring/swift,hooman/swift,CodaFi/swift,devincoughlin/swift,swiftix/swift.old,glessard/swift,Ivacker/swift,natecook1000/swift,harlanhaskins/swift,uasys/swift,benlangmuir/swift,codestergit/swift,ken0nek/swift,ben-ng/swift,IngmarStein/swift,frootloops/swift,roambotics/swift,JGiola/swift,tjw/swift,johnno1962d/swift,felix91gr/swift,xwu/swift,JGiola/swift,ken0nek/swift,manavgabhawala/swift,kusl/swift,slavapestov/swift,devincoughlin/swift,apple/swift,ahoppen/swift,tinysun212/swift-windows,arvedviehweger/swift,practicalswift/swift,jtbandes/swift,nathawes/swift,atrick/swift,Jnosh/swift,russbishop/swift,tkremenek/swift,adrfer/swift,tardieu/swift,gribozavr/swift,stephentyrone/swift,IngmarStein/swift,Ivacker/swift,karwa/swift,atrick/swift,gregomni/swift,karwa/swift,adrfer/swift,KrishMunot/swift,therealbnut/swift,tkremenek/swift,Ivacker/swift,lorentey/swift,zisko/swift,kusl/swift,LeoShimonaka/swift,ken0nek/swift,ben-ng/swift,calebd/swift,Ivacker/swift,uasys/swift,Ivacker/swift,IngmarStein/swift,practicalswift/swift,milseman/swift,benlangmuir/swift,milseman/swift,IngmarStein/swift,natecook1000/swift,MukeshKumarS/Swift,roambotics/swift,ahoppen/swift,dduan/swift,apple/swift,gribozavr/swift,JaSpa/swift,dduan/swift,JGiola/swift,kperryua/swift,swiftix/swift.old,mightydeveloper/swift,parkera/swift,shahmishal/swift,khizkhiz/swift,sdulal/swift,uasys/swift,jmgc/swift,hooman/swift,swiftix/swift,swiftix/swift,CodaFi/swift,xwu/swift,gmilos/swift,khizkhiz/swift,gribozavr/swift,jckarter/swift,gregomni/swift,apple/swift,devincoughlin/swift,russbishop/swift,LeoShimonaka/swift,allevato/swift,lorentey/swift,danielmartin/swift,JaSpa/swift,harlanhaskins/swift,swiftix/swift,manavgabhawala/swift,gregomni/swift,sdulal/swift,aschwaighofer/swift,mightydeveloper/swift,shajrawi/swift,parkera/swift,tkremenek/swift,roambotics/swift,aschwaighofer/swift,brentdax/swift,jtbandes/swift,austinzheng/swift,ken0nek/swift,allevato/swift,gribozavr/swift,johnno1962d/swift,austinzheng/swift,gottesmm/swift,jtbandes/swift,MukeshKumarS/Swift,return/swift,IngmarStein/swift,ahoppen/swift,austinzheng/swift,emilstahl/swift,huonw/swift,swiftix/swift.old,LeoShimonaka/swift,swiftix/swift,jckarter/swift,frootloops/swift,KrishMunot/swift,tjw/swift,felix91gr/swift,airspeedswift/swift,SwiftAndroid/swift,atrick/swift,gottesmm/swift,zisko/swift,devincoughlin/swift,roambotics/swift,amraboelela/swift,kentya6/swift,glessard/swift,amraboelela/swift,calebd/swift,parkera/swift,kentya6/swift,ben-ng/swift,rudkx/swift,karwa/swift,stephentyrone/swift,arvedviehweger/swift,devincoughlin/swift,gregomni/swift,ben-ng/swift,kperryua/swift,apple/swift,cbrentharris/swift,kstaring/swift,lorentey/swift,MukeshKumarS/Swift,gmilos/swift,natecook1000/swift,jmgc/swift,KrishMunot/swift,modocache/swift,return/swift,milseman/swift,modocache/swift,amraboelela/swift,codestergit/swift,Jnosh/swift,danielmartin/swift,glessard/swift,alblue/swift,jopamer/swift,kstaring/swift,amraboelela/swift,deyton/swift,glessard/swift,huonw/swift,harlanhaskins/swift,gribozavr/swift,russbishop/swift,rudkx/swift,kperryua/swift,sdulal/swift,apple/swift,adrfer/swift,apple/swift,gmilos/swift,manavgabhawala/swift,danielmartin/swift,glessard/swift,slavapestov/swift,tinysun212/swift-windows,jckarter/swift,jckarter/swift,OscarSwanros/swift,djwbrown/swift,milseman/swift,natecook1000/swift,Jnosh/swift,bitjammer/swift,rudkx/swift,cbrentharris/swift,mightydeveloper/swift,bitjammer/swift,danielmartin/swift,practicalswift/swift,natecook1000/swift,alblue/swift,atrick/swift,tinysun212/swift-windows,huonw/swift,djwbrown/swift,JGiola/swift,djwbrown/swift,return/swift,arvedviehweger/swift,shahmishal/swift,deyton/swift,rudkx/swift,mightydeveloper/swift,practicalswift/swift,ahoppen/swift,nathawes/swift,alblue/swift,swiftix/swift,hughbe/swift,swiftix/swift.old,mightydeveloper/swift,stephentyrone/swift,tinysun212/swift-windows,deyton/swift,jtbandes/swift,practicalswift/swift,stephentyrone/swift,MukeshKumarS/Swift,johnno1962d/swift,dreamsxin/swift,lorentey/swift,allevato/swift,cbrentharris/swift,xedin/swift,ken0nek/swift,kperryua/swift,jopamer/swift,xwu/swift,gribozavr/swift,alblue/swift,khizkhiz/swift,jckarter/swift,brentdax/swift,austinzheng/swift