SIL: Make SILFunctionTypeSubstituter use interface types.
SIL: Make SILFunctionTypeSubstituter use interface types.

Fairly straightforward, with the caveat that we always have to re-lower the substituted type if the original type is dependent.

Swift SVN r13700

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