[VPlan] Assert that replacement types match in VPUser::setOperand (NFC). (#195891)
Add assertion to VPValue::setOperand to check if types of the new
operand matches the old operand.
This makes it easier to catch replacements with incorrect types at the
source, instead only later during verification.
A few places currently preform replacements with mis-matching types,
which only get fixed up later. Update those to avoid type-violation.
Depends on https://github.com/llvm/llvm-project/pull/195485
PR: https://github.com/llvm/llvm-project/pull/195891