Implemented the first envisioned valuable usage of command states:
context sensitive undo/redo.
If the plotting of a canvas is undone, then that canvas is removed. In
some cases, the removed canvas may have been changed after its creation.
Previously, these changes where last in an immediate redo case. Now, the
same model (or an equivalent) is restored as it was before its removal.

Signed-off-by: Jakob Brandsborg Ehmsen <jakobehmsen.github@gmail.com>