selectionchange: "flatten" the Range instances
selectionchange: "flatten" the Range instances

In Firefox, sometimes the "old" Range would be *live*,
and its values would change as the DOM changes. This would
only happen in strange edge-cases, like the cursor is
at the end of a P and deleting contents.

Flattening them into Objects ensures that they're not *live*
with the DOM, and this fixes the backspace problem.

Also ditching the RANGE_PROPS array since there's only
4 props, and it's easy enough to just compare them directly.
Faster than invoking a full-blown loop this way as well.

Automattic/selectionchange-polyfill,Automattic/selectionchange-polyfill