Improve backspace and delete behaviour to function over inline roots

Backspace and delete characters were "sticking" when encountering other
roots in the document (e.g., annotations). Improved logic uses step
iterators to improve the robustness of this calculation.

Partially fixes issue #56.