This CL rolls the various dependencies of SPIRV-Cross and updates the tests as needed.
Just like loops, we need complicated hoisting again to make this work.