This adds the necessary hooks to GlobalISel so that swifterror values can be lowered correctly (essentially, promoted from memory to registers at CodeGen time). Support is also added to AArch64 as an example.
Most of the code can be reused (after refactoring) from SelectionDAG, so there are surprisingly few modifications.
-fast-isel-sink-local-values unnecessary?