Change the DependencyResolver type to take a per-package version pref
And add a few global package version pref policies and use them in ordinary install and upgrade. For install we use a policy that says that we prefer the latest version of a package that we specifically request and prefer the installed version of any other package. For upgrade we simple always prefer the latest version. One can imageine other policies where we prefer the latest version for only some interesting subset of packages and installed otherwise. No resolvers actually make use of this preference yet.