registerUndo(target, selector, ...args) {
    if (this._isUndoing) {
      this._appendRedo(target, selector, ...args);
    } else {
      if (!this._isRedoing) {
        this._redos.length = 0;
      }
      this._appendUndo(target, selector, ...args);
    }
  }
Manually registers an simple undo action with the given args.

If this undo manager is currently undoing then this will register a redo
action instead. If this undo manager is neither undoing or redoing then the
redo stack will be cleared.

@param {Object} target call `selector` on this object
@param {string} selector the method name to call on `target`
@param {...Object} args arguments to pass when calling `selector` on `target`