Clean up up backspacing edits and add unit tests

- Use undo transaction for backspacing edits.
- Add backspace over character unit tests