This significantly improves codegen for vector `OpSelect` in MSL.
GL_NV_gpu_shader5 doesn't support "hf", so to avoid lots of complicated workarounds, just value-cast the half literals.
A lot of changes in spirv-opt output. Some new invalid SPIR-V was found but most of them were not significant for SPIRV-Cross, so just marked them as invalid.