Improve game reset and undo move

Change: refactor game stopping so reset and undo move features do not
terminate threads.
Change: refactor Human player and player move making so invalid moves
are no longer standard logic.