make the reinstall check less noisy
There are two aspects to this change. The uncontroversial one is that if the install plan contains reinstalls, we now determine if there are reverse dependencies of such reinstalled packages that we can see. If so, these are likely to be broken. If we find such packages, we list them and state that we can only install the plan if --force-reinstalls is explicitly stated. The more controversial change is that if we cannot find such reverse dependencies, we now merely print a warning but continue, even though there are situations where executing the build process can still break packages. The most likely example of this is that we're installing to the global package database, and user package databases on the system have dependencies on the replaces packages -- but we cannot see these user package databases.
Showing with 50 additions and 42 deletions