spirv: Handle most execution modes earlier
For convenience in e68871f6 ("spirv: Handle constants and types before execution modes") we moved all execution mode parsing after the constants and types, so that those using OpExecutionModeId could be handled together.
Later in 84781e1f ("spirv/nir: keep track of SPV_KHR_float_controls execution modes") we had to parse certain non-ID execution modes before handling constants.
Instead of handling just the float controls related execution modes early, handle all modes that don't need an ID. This is a more "natural" split and will allow other type handling to rely on execution mode in the future.