vkd3d-shader/hlsl: Factor out add_binary_expr and use it for assignment operators.
This fixes a lot of internal compiler errors with assignment operators, especially bitwise ones. The bitwise-assignment test has the motivating examples.
This supercedes !993 (closed).