SILGen: Properly carry through generic arguments when producing ObjC thunks.
SILGen: Properly carry through generic arguments when producing ObjC thunks.

We can't assume that ObjC types aren't generic anymore because container bridging requires generic subclasses of ObjC types, so remove the assertions that ObjC entry points are never generic and properly handle interface type substitution when emitting thunks.

Swift SVN r15073

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