implement "--best-effort" for "upgrade"
- pick up libzypp 3.12.0 fix for resolvePool() to not remove
extra dependencies on start
(have_extra_deps parameter to solve_and_commit() and resolve())
- rename 'uninstalled' to 'best' in LookForArchUpdate to match semantics
- add findInstalledItem callback to find the installed resolvable matching
an upgrade candidate in kind and name
- on 'best-effort', dont mark explicit uninstalled resolvables for
installation but inject "installed-name > installed-version" requirements
into the solver if there are one or more update candidates for 'installed'