Add undo support in map view.

Up to 20 moves can be undone in the map view.