Add Instruction::mergeDIAssignID(ArrayRef<const Instruction* > SourceInstructions) which merges the DIAssignID metadata attachments on the SourceInstructions and this and replaces uses of the original IDs with the new shared one.
This is used when stores are merged, for example sinking stores out of a if-diamond CFG or vectorizing contiguous stores.
Worth adding the rider that if this instruction has no DIAssignID, then it is given one, no? (I think that's what the 3rd unit test is doing?)