added basic filtering of non-repeatable backspaces.

The existing document listener adds an extra "right" cursor motion on backspaces, but the complications of online editing make it very difficult to spot these during editing. So, instead I added in a post-filtering step that recognizes the pattern and removes if from the strokes to be repeated before they are repeated. It is kind of a hack, but it gets the majority of cases working.

One significant remaining problematic case is when the editor inserts a matching brace/paren and the user removes it by removing the leading one (e.g. type "void f(" then press backspace). I think I can fix that one too via the same kind of post-editing filtering, but I'm out of time for working on it at the moment.