Better 'opam upgrade --fixup'

We used to be just minimising changes without adding packages to keep
as was originally suggested by @rdicosmo. The issue with that is that
up/down-grading isn't privileged over removal.

Specifying packages to keep can fail though, so we now first try to
keep everything, then retry the solver while reducing our
expectations, until successful.

Closes #1918