Implemented faster & more robust cursor position fixing logic 

Existing behaviour was slow if the cursor has a large distance between the
anchor and focus nodes. It also tended to lose the first letter when right near the start of a paragraph or root boundary.

New logic avoids the need for expensive positional lookups, instead exploiting the fact that the actual step value of the cursor is expected to be unmoved. This allows the start and end points of the range to be simply moved to their nearest valid step.

* Re-ordered ambiguous elements in test "Remove_DeleteLastCharacterInSpan"

Fixes issue #261