Support storing tiles for offline use
Internet connections aren't always stable, especially when traveling. It would be great to have a way to download an area for offline use.
We could have a new ShumateDataSource called ShumateDownloadManager which sources tile data from a data directory. If the tile isn't present, it would pass the request to a configured "fallback" data source. It would also have methods for creating and removing download areas and adding tiles to them.
Sourcing tiles is probably best left to the application. It could use a ShumateTileDownloader to download all the tiles in an area then save them to the DownloadManager, or it could download a .tar or .mbtiles file for a certain region, extract the tiles, and save them. If it uses a TileDownloader, it should disable caching to avoid storing the tiles twice.