Improve the undo/redo system in TileMapObjectEditor