Undo/Redo—initial implementation

WYMeditor's undo is, in some cases, not accurate.
This should have been here ten years ago. So many of the existing tests can be made to use this. Writing new tests is a breeze, using it.