Better documentation on compiling from source and 'opam init'

Closes #1842
Merge pull request #1851 from OCamlPro/opam-init-doc

Better documentation on compiling from source and 'opam init'
Add init checks for tar and unzip
Merge pull request #1855 from OCamlPro/check-tar

Add init checks for tar and unzip
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