Put onTileRemoved in a more appropriate place.
Add an explicit lock object for the tile cache in MapTileCache.