Implement VK_KHR_shader_float_controls2
Move stuff around to have NAN/INF/SZ preserves per instruction, so the float_controls2 decorations can work for those. AllowContract/AllowReassoc/etc are still handled through the exact bit, but ideally we'd move away from that in the future.
Questions I still have if anyone has opinions about:
- nir_opt_algebraic: what do we want that to look like? Do we treat these things specially there or add support to have multiple conditions for the search expression?
- Float controls2 doesn't care about rounding mode or denorms, do we want to move those per-instruction too or split the nan/nsz/inf into its own thing and treat them separately?