Undo/Redo—initial implementation

WYMeditor's undo is, in some cases, not accurate.
@kylegibson thanks for these.