IRGen: Share LoadableTypeInfo ops for single-/multi-payload unions.
IRGen: Share LoadableTypeInfo ops for single-/multi-payload unions.

The explosions for single- and multi-payload unions share the same schema, so factor out a base class to share the common LoadableTypeInfo operations between them.

Swift SVN r7456

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