When a mirror is possibly syncing and is disabled store that fact

This allows for easier understanding of a mirror's state out of the
database.
Refactor the checker to use disable_mirrors in almost all cases

One of the remaining cases that disable the mirror directly requires
conditional logging.
Use disable_mirrors in the remaining case

The whole disabling code could actually be skipped if the mirror is
already blacklisted, but keep the current behaviour of always enforcing
it just in case. It might be worth to later revisiting the code to make
it less confusing.