Undo/Redo—initial implementation

WYMeditor's undo is, in some cases, not accurate.
The shams are not in the `main` declaration of the es5-shims package. So we have to use this manual task.