A simple undo/redo engine for plain text and wxPython TextCtrl.