map-layer: Remove old tiles more aggressively
In the step of recompute_grid() where it removes tiles that are no longer part of the view, change the logic so it removes:
- Tiles that are not on the target zoom level and are not done loading
- Tiles that are outside the viewport, regardless of zoom level
Previously, it only removed tiles that were on the current zoom level and outside the viewport. This made zoom animations slow to load tiles because they would try to completely load all the tiles in between.