Undo/Redo—initial implementation

WYMeditor's undo is, in some cases, not accurate.
Go micro–JS!