When we see a switch block which only contains one default block, emit a do {} while(false) statement instead, which is far more idiomatic and readable anyways.
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.