Manages the process of downloading feeds during a solve. We use the solver to get the current best solution and the set of feeds it queried. We download any missing feeds and update any out-of-date ones, resolving each time we have more information.
Run the solver, then download any feeds that are missing or that need to be updated. Each time a new feed is imported into the cache, the solver is run again, possibly adding new downloads.
Note: if we find we need to download anything, we will refresh everything.
Convenience wrapper for
fetcher#download_and_import_feed that just gives the final result.
If the mirror replies first, but the primary succeeds, we return the primary.
Download any missing implementations needed for a set of selections.
solve_with_downloads, if possible