Introduce history
Make some common methods use the new history system
Make spell correction BaseBackend's responsibility
Check last_action() to decide wether to swallow backspace
Reset on the first normal key press after a spelling correction