Undo/Redo—initial implementation

WYMeditor's undo is, in some cases, not accurate.
@winhamwr what do you think about how events are currently set up and do you think that we should add some tests for the way that they're currently set up and do you think that it should be on this PR? I don't mind it being on this PR.