Add support for lowering switch statements.
This patch does this using a trivial chain of conditional branches.
In the future, we probably want to reuse the optimized switch lowering used in SelectionDAG.
This increases the compile pass rate in the test-suite run with -O0 -mllvm -global-isel=true -mllvm -global-isel-abort=1 from 53.6% to 59.9%.
The formatting looks strange here: auto& vs. auto &.
Make sure to run clang-format.