spirv: Re-emit constants at their uses
Right now, spirv_to_nir places all constants at the top of the function and has a hash table to de-duplicate them. This change drops the hash table and starts re-emitting constants more-or-less at their uses. This is more consistent with what we do in GLSL -> NIR translation. It is, however, a change to SPIR-V -> NIR translation which will likely affect other optimizations in unexpected ways so it should be evaluated separately.