The root of the issue comes to the fact that sub-data pointers were
used to match strips before/after copy-on-write. The undo system might
re-use sub-data pointers after re-allocating them, making it so that,
for example, pointer used by sound strip is later re-used by video
strip.
This fix takes an advantage of recently introduced per-sequence UUID
and uses it to match sequences before/after copy-on-write.
The code is committed to the temp-T78835 branch, to make it easier
to apply and test.
After this part is done the same UUID approach will be used for the
modifiers and pose channels. The ID UUID can also be switched to use
the new code (is stronger typed, uses more bits, and is good to use
same primitives for everything).