CL: More closely synchronize vtn with upstream
The primary goal of this MR is to surface the squash/fixup changes needed to our tree to deal with the changes introduced by mesa/mesa!5278 (merged). This series cherry-picks that series, with several prior MRs so that it applies cleanly, with necessary fixups to locally-applied changes inserted along the way. Prior to each new cherry-picked change, our tests continue to pass, though this series will break bisecting if applied as-is, because the cherry-pick changes without the fixups do sometimes break things.
My reason for doing this was so that I could actually test the patches I'm looking to send upstream in advance of fully merging our CL compiler.
@kusma I'm not sure exactly how this will help for your next rebase, but I figured having these fixups available will be better than nothing. It's unclear to me if we should merge this or if that'll just complicate rebasing.
@jekstrand FYI for how badly your series broke us