Add a map from expressions to types in the constraint system.
Add a map from expressions to types in the constraint system.

This map will be used instead of directly accessing types on
expressions. This will allow us to avoid mutating the types on
expression trees directly, making it possible to remove code that
currently attempts to save & restore types, and reducing the number of
bugs that exist as a result of not always perfectly saving & restoring
types (e.g. dangling references to released type variables).

The setType() function introduced here currently still sets the type
on the expression, so this change is NFC. This is just step one of
staging in this transition to using the types from the maps.

A map for TypeLocs and possibly other maps for other types we mutate
will be added in future commits.

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