Refactoring, no semantic changes
Fix 'opam remove' solver request.

* Manually the packages depending on the ones we want to remove
* keep the same version for the transitve closure of soft-dependencies of installed roots
* and call the solver which will delete all the remaining non-root packages
'opam init' now accepts --fake (ie. to fake the installation of base packages)
When using the external solver, also display the command used to call the solver at the first line of the generated CUDF file (if using --cudf option)