[closure-spec] Refactor all logic determining if we should specialize into the gatherCallSites method.
[closure-spec] Refactor all logic determining if we should specialize into the gatherCallSites method.

This creates a nice separation in between the analysis and the dynamic part of
the specialization. Thus gatherCallSites only returns call sites that are legal
to specialize.

This makes it easier to track where all of the correctness checks are.

Swift SVN r22049

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