Fixed detection of transitively orphan packages

Closes #1831, #1834
Allow downgrade of orphan packages on upgrade
Better message on failed upgrade
Avoid duplicating package names in requests
Fix the double installation bug with the internal heuristic

It's wrong to compute the actions on a trimmed universe in case installed packages are
no longer available
Don't force upgrade on the internal solver when not possible
Merge pull request #1856 from OCamlPro/fix-orphans-mass-remove

Fixed detection of transitively orphan packages