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 change makes it so sub-data pointers are considered invalid and
not usable when ID is changed by the undo system. It does not fix the
case when strips are modified form python script, which might cause
same fiasco. Dealing with the script case requires deeper changes which
are too risky for bcon3.
This is an alternative to D8416