Fix an index out of range issue
More fine-grain behavior on non-processable key presses

The BaseBackend should not do anything, whilst the
SurroundingTextBackend reset() and the PreeditBackend
commit_composition() and reset().