Added/corrected several interfaces and implementations in relation to
do/undo/redo separation of command states.

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