Redo catalog validation
The local catalog cache is currently downloaded when running the catalog cache update
command, and... that's all.
Later, when trying to install a new package, we look into the catalog cache to find that package, and only validate the data at that time.
I think it would be better to validate the data when updating the cache, warning about issues (e.g missing attributes), and only keeping the valid data in the local cache.
This could simplify quite a bit of code, among other things the fail_if_no_match
boolean thing which is pretty horrible.