vkd3d-shader/hlsl: Improve SM1 support for non-float operations, part 1.
This part mainly includes a compilation pass to turn non-float operations into float operations, inserting the corresponding casts on the operands and result, and writing casts from bool to float as MOV.