Undo/Redo—initial implementation

WYMeditor's undo is, in some cases, not accurate.
DRY for the sake for DRY isn't always preferred. Sometimes duplicating code is OK because the alternative means making it more complex such that maintaining it in the future becomes non-trivial. I don't know whether that's the case here, I'm just concerned that it may be the case.

Here's what I'm suggesting could look like:

```javascript
if (what === 'un') {
    if (history.changesetsBack.length === 0) {
        return;
    }
    history.backward();
    postEventName = 'postUndo';
} else if (what === 're') {
   if (history.changesetsFore.length === 0) {
        return;
    }
    history.forward();
    postEventName = 'postRedo';
} else {
   // ...
}
```

There's a small amount of code duplication, but the trade off (I feel) is that it's easier to read.