Various improvement to the heuristic.

The current strategy (which seems to work fine) is:

1/ call the solver once to get a rought approximation of the final universe

2/ build a new universe where we:
   - install all the packages appearing in 1/; and
   - remove all the version below the one appearing in 1/

3/ use user-defined constraints to trim the universe (eg. for 'opam install core.109.15' we remove from the universe all the other versions of core)

4/ remove from 4/ all the versions of packages which are not a dependency appearing in the request (eg. it will remove every version of 'bin_prot' <> '109.15.00')

5/ brute-force explore the remaining universe to find a consistent state

This should fix #565 and #555
Do not fail on 'opam list' when no packages exist
Add ocp-build's colors back
export OPAMSWITCH only if using --switch=SWITCH
Use a different code-path when we want to remove packages.
Remove dead-code
Too long lines
Improve OpamCudf API
Update CHANGES
Right name for the contributing file
Use ocp-indent to re-indent everything

No semantic changes
Add a .ocp-indent file for the project
Fix stupid typo in previous commit.
<root> is a bit confusing, only replace $HOME into ~
Long lines (no semantic changes)
It is now possible to specify --jobs in the command line when installing/upgrading packages.

This overwrite the default configuration value which is in ~/.opam/config

You can also set OPAMJOBS

Priorities: command-line > env variables > default

Also, add a specific variable to store the actual value of jobs:

   opam config var jobs

This should fix #569
Update CHANGES