Undo/Redo—initial implementation

WYMeditor's undo is, in some cases, not accurate.
I like this one. It shows that undo/redo works in this manipulation when it doesn't actually perform a manipulation. See this test function. It doesn't expect change.