Feature undo function

undo function implemented with some unit tests for game workflow. yadarts-desktop needs to reflect this.