When sinking DBG_VALUEs, we were creating the new sunk DBG_VALUE by copying the old one. Unfortunately, it turns out that in the meantime copy propagation can significantly alter the old one, for example by changing the subregister it refers to.
Avoid any risk of sunk DBG_VALUEs picking up later subregister information, by storing the original (TM) subregister in the sink record.
This is WIP because the added test case _used_ to be failing, but now isn't for some reason. I'd like to share it with @uabelho who's reporting this problem happening downstream, to see whether I'm barking up the right tree before analysing further.