{Cnt|Dir}Loader: Fix standard/nar hash mismatch behavior to fail loading
Prior to this commit, there was a discrepancy between the hash mismatch computations with "standard" and "nar" computations. This commit fixes the gap between those.
When a hash mismatch occurs, either "nar" or "standard", the issue is caught and the next mirror url is checked. At the end of it all, if nothing is loaded and errors exist, this is raised. This fails the visit.
This also adds the missing tests.
Related to T3781 Depends on !440 (closed)
Migrated from D8630 (view on Phabricator)