Revert "remove structure to apply bookends to selections"

This reverts commit 5d98b03ea7fe70ca115fa2069ce6947afe4401f9.

This needs to be temporarily reverted to address a bug that was
uncovered. In Firefox, removeHighlightFromRanges() would fail if the
selection ended at the end of an HTML element. This blocks potential
submissions.

The failure is a result of how the result of save/restore selection is
used when applying or removing a highlight. Because of the work we're
doing to create custom bookends around the selected range, the issue is
hidden because the selection isn't considered at the end of the parent
element when the bookends are being removed.

We can re-release this cleanup once the core problem is resolved.