Move out undo stack from :state

So now tixi.mutators.shared/update-state! will change the state in two
places - :state and in the tree in :stack.

This way we'll be able to serialize/deserialize the state easier