At the moment, VPReplicateRecipe uses the underlying value to store the
replicated instruction. This makes it a bit awkward to introduce new
VPReplicateRecipes or clone existing ones.
Instead, add a dedicated pointer to hold the instruction, but make it
clear that the operands and uses are modeled in VPlan; the instruction
is only used for opcode, type info, metadata and so on.