[BREAKING CHANGE (ish)] Track original data position in insertion operations

This fixes the problem with the selection after a block
node drag and drop.

getModifiedRange now correctly accounts for closing & openings
that weren't originally defined by the user.

Bonus: Fix bug where getModified range wasn't ignoring
retainMetadata operations

Adds new properties to some operations so may break a deepEqual test.

Bug: 65716
Change-Id: If26cc0a2d492a6f9857804d22f50f6502682d893
Merge "[BREAKING CHANGE (ish)] Track original data position in insertion operations"