Add a convenient class for defining unions whose discriminator is stored externally.
Add a convenient class for defining unions whose discriminator
is stored externally.

apple/swift,rudkx/swift,gregomni/swift,milseman/swift,amraboelela/swift,glessard/swift,xwu/swift,atrick/swift,uasys/swift,zisko/swift,nathawes/swift,djwbrown/swift,swiftix/swift,danielmartin/swift,roambotics/swift,deyton/swift,xwu/swift,tjw/swift,allevato/swift,djwbrown/swift,natecook1000/swift,harlanhaskins/swift,harlanhaskins/swift,hooman/swift,danielmartin/swift,apple/swift,practicalswift/swift,austinzheng/swift,calebd/swift,return/swift,aschwaighofer/swift,shahmishal/swift,jopamer/swift,sschiau/swift,amraboelela/swift,frootloops/swift,alblue/swift,hooman/swift,harlanhaskins/swift,benlangmuir/swift,djwbrown/swift,zisko/swift,JGiola/swift,austinzheng/swift,allevato/swift,return/swift,gribozavr/swift,tjw/swift,lorentey/swift,shajrawi/swift,jmgc/swift,frootloops/swift,tjw/swift,jopamer/swift,harlanhaskins/swift,parkera/swift,milseman/swift,hughbe/swift,jopamer/swift,JGiola/swift,natecook1000/swift,harlanhaskins/swift,aschwaighofer/swift,gribozavr/swift,natecook1000/swift,arvedviehweger/swift,brentdax/swift,hughbe/swift,danielmartin/swift,stephentyrone/swift,milseman/swift,djwbrown/swift,jmgc/swift,stephentyrone/swift,hooman/swift,brentdax/swift,jopamer/swift,airspeedswift/swift,practicalswift/swift,tkremenek/swift,jckarter/swift,xedin/swift,sschiau/swift,karwa/swift,arvedviehweger/swift,stephentyrone/swift,gribozavr/swift,xedin/swift,calebd/swift,ahoppen/swift,natecook1000/swift,gregomni/swift,gribozavr/swift,aschwaighofer/swift,return/swift,JGiola/swift,airspeedswift/swift,tkremenek/swift,milseman/swift,swiftix/swift,sschiau/swift,parkera/swift,jtbandes/swift,allevato/swift,shahmishal/swift,Jnosh/swift,calebd/swift,milseman/swift,airspeedswift/swift,nathawes/swift,parkera/swift,ahoppen/swift,practicalswift/swift,devincoughlin/swift,benlangmuir/swift,apple/swift,devincoughlin/swift,natecook1000/swift,JGiola/swift,alblue/swift,nathawes/swift,austinzheng/swift,benlangmuir/swift,OscarSwanros/swift,shajrawi/swift,amraboelela/swift,felix91gr/swift,benlangmuir/swift,airspeedswift/swift,stephentyrone/swift,milseman/swift,felix91gr/swift,arvedviehweger/swift,jckarter/swift,frootloops/swift,jmgc/swift,lorentey/swift,xwu/swift,uasys/swift,roambotics/swift,shahmishal/swift,austinzheng/swift,Jnosh/swift,alblue/swift,devincoughlin/swift,rudkx/swift,shajrawi/swift,felix91gr/swift,parkera/swift,deyton/swift,gribozavr/swift,zisko/swift,OscarSwanros/swift,sschiau/swift,aschwaighofer/swift,OscarSwanros/swift,atrick/swift,hughbe/swift,aschwaighofer/swift,deyton/swift,Jnosh/swift,jmgc/swift,tkremenek/swift,alblue/swift,djwbrown/swift,devincoughlin/swift,roambotics/swift,roambotics/swift,ahoppen/swift,gregomni/swift,parkera/swift,karwa/swift,xedin/swift,xedin/swift,gregomni/swift,parkera/swift,hooman/swift,xwu/swift,nathawes/swift,austinzheng/swift,lorentey/swift,return/swift,practicalswift/swift,glessard/swift,CodaFi/swift,jtbandes/swift,glessard/swift,felix91gr/swift,xedin/swift,Jnosh/swift,Jnosh/swift,uasys/swift,jmgc/swift,brentdax/swift,CodaFi/swift,practicalswift/swift,glessard/swift,gribozavr/swift,jtbandes/swift,deyton/swift,allevato/swift,roambotics/swift,frootloops/swift,hughbe/swift,OscarSwanros/swift,tkremenek/swift,glessard/swift,shahmishal/swift,shajrawi/swift,devincoughlin/swift,jckarter/swift,practicalswift/swift,austinzheng/swift,hooman/swift,felix91gr/swift,amraboelela/swift,arvedviehweger/swift,shajrawi/swift,felix91gr/swift,rudkx/swift,OscarSwanros/swift,shahmishal/swift,CodaFi/swift,atrick/swift,djwbrown/swift,sschiau/swift,stephentyrone/swift,stephentyrone/swift,calebd/swift,karwa/swift,tjw/swift,huonw/swift,jckarter/swift,brentdax/swift,lorentey/swift,airspeedswift/swift,deyton/swift,xwu/swift,practicalswift/swift,alblue/swift,tjw/swift,JGiola/swift,karwa/swift,jtbandes/swift,sschiau/swift,shajrawi/swift,devincoughlin/swift,danielmartin/swift,CodaFi/swift,hughbe/swift,harlanhaskins/swift,benlangmuir/swift,huonw/swift,nathawes/swift,shajrawi/swift,gregomni/swift,atrick/swift,jopamer/swift,JGiola/swift,swiftix/swift,calebd/swift,allevato/swift,roambotics/swift,airspeedswift/swift,jckarter/swift,return/swift,parkera/swift,karwa/swift,harlanhaskins/swift,allevato/swift,huonw/swift,return/swift,milseman/swift,xedin/swift,gribozavr/swift,lorentey/swift,jopamer/swift,xedin/swift,hughbe/swift,swiftix/swift,jckarter/swift,shahmishal/swift,Jnosh/swift,CodaFi/swift,danielmartin/swift,tjw/swift,natecook1000/swift,alblue/swift,felix91gr/swift,arvedviehweger/swift,rudkx/swift,amraboelela/swift,tjw/swift,nathawes/swift,tkremenek/swift,swiftix/swift,shahmishal/swift,nathawes/swift,lorentey/swift,frootloops/swift,austinzheng/swift,deyton/swift,huonw/swift,Jnosh/swift,tkremenek/swift,tkremenek/swift,lorentey/swift,amraboelela/swift,devincoughlin/swift,zisko/swift,hughbe/swift,xwu/swift,hooman/swift,CodaFi/swift,gregomni/swift,sschiau/swift,zisko/swift,frootloops/swift,apple/swift,return/swift,allevato/swift,huonw/swift,benlangmuir/swift,ahoppen/swift,amraboelela/swift,uasys/swift,danielmartin/swift,zisko/swift,ahoppen/swift,OscarSwanros/swift,frootloops/swift,arvedviehweger/swift,danielmartin/swift,uasys/swift,jmgc/swift,practicalswift/swift,jtbandes/swift,jtbandes/swift,devincoughlin/swift,karwa/swift,glessard/swift,xwu/swift,apple/swift,parkera/swift,aschwaighofer/swift,zisko/swift,rudkx/swift,ahoppen/swift,airspeedswift/swift,huonw/swift,uasys/swift,arvedviehweger/swift,atrick/swift,swiftix/swift,jopamer/swift,natecook1000/swift,OscarSwanros/swift,alblue/swift,huonw/swift,gribozavr/swift,brentdax/swift,shajrawi/swift,sschiau/swift,jmgc/swift,shahmishal/swift,brentdax/swift,deyton/swift,karwa/swift,uasys/swift,lorentey/swift,CodaFi/swift,jckarter/swift,djwbrown/swift,karwa/swift,rudkx/swift,jtbandes/swift,hooman/swift,calebd/swift,calebd/swift,brentdax/swift,xedin/swift,atrick/swift,apple/swift,swiftix/swift,stephentyrone/swift,aschwaighofer/swift