~~This goes atop !773. The last three commits belong to this MR.~~
Trampolines and launchers allow us to handle code doing multilevel jumps, but they partially virtualize the control flow, which potentially makes the jobs of downstream compilers harder. So we avoid them every time we can.
-- v2: vkd3d-shader/ir: Only emit launchers when needed. vkd3d-shader/ir: Only emit trampolines when needed. vkd3d-shader/ir: Swap selection branches if the if branch is empty.