repos: Make syncer more conservative when deleting repos
Created by: tsenart
This commit makes the Syncer more conservative when deleting repos. Before this change, if we had any spurious errors talking to the code host or writing to the database, we'd delete those repos that had failed.
This change makes it so that we only do deletions if we found no spurious errors at all, so we can know for sure that a repos hasn't been sourced rather than having had failed.
We should already have less spurious errors after #23131, but this is still necessary.