vkd3d-shader/hlsl: Propagate error instructions instead of making them srcs.
Currently the ctx->error_instr hlsl_ir_node is used as block->value for the blocks that result from invalid code.
Since this instruction is unique, it is not added to the instruction list of the block itself. Also, when another instruction depends of an error value to be properly defined, e.g. an expression that contains an error as operand, it is considered an error value too instead of keeping the ctx->error_instr as an hlsl_src.
Currently, there are some places where it is still possible that instructions are created normally but with an hlsl_src pointing to the ctx->error_instr. This causes a failed assertion on hlsl_ctx_cleanup() in the example in 1/4 (simplified form of Wine Bug 57686).
These patches take care of propagating the error value (or discarding the instructions) on these cases so that we can assert that no hlsl_src is initialized to point to the error instruction.
OTOH if we want to allow hlsl_srcs to point to the error instruction in some cases, I can reduce this MR to just patch 1/4.