Update for undo

history is really easy; and your History struct is unnecessary. Really.
1. undoType flag - all commands set this. SOME commands when successful
set it to something that will trigger an undo.
2. don't need an undotarget - all undos work with m_cursor only.
2.a. Undo(Add) removes the selected item (no need for history)
2.b. Undo(Move) forward/backward does simply the reverse.
2.c. Undo(Remove) (re)links the removed item and targets it.
2.d. Undo(Edit) writes the changed value from backup OR restores a
backup of the entire item.