animated undo

now we animate the tiles back to their previous positions.
there is a bug where tiles that didn’t move still do get animated while
undoing. will be fixed in the next commit after some code
reorganization.