Undo/Redo

WYMeditor's undo is, in some cases, not accurate.
So, what we're doing here, is saving a selection. It works by placing `span` markers in the DOM and returning an object that describes them, by their unique IDs.