Much better algorithm to print the causes of actions

It is passed the user-specified packages, and tries to deduce the reason
for all actions from there by propagating in the action graph
Merge pull request #1174 from OCamlPro/better-action-causes

Much better algorithm to print the causes of actions
Align the action list for better readability
promote the --cudf option to always be available

Ref: #1169
Make --dry-run a real dry-run, and add --show to check the update

hmm on second thought maybe --show is not clear enough. Suggestions ?
Closes #1142
make opam list <pattern> list uninstalled packages
Ask for confirmation whenever there may be surprises

Previous behaviour was to do it unless there was a single change, which
could surprise for 'opam upgrade'.
New behaviour is to confirm when the impacted packages weren't exactly the ones
on your command-line.

Closes #1165
Merge pull request #1176 from OCamlPro/command-line-args

Various improvements to the command-line arguments
Merge remote-tracking branch 'OCamlPro/cudf-everywhere'

Conflicts:
	src/client/opamArg.ml
clarify the `opam-admin make --help` with for recursive downloads

Explanation via @AltGr
Parse version constraints even with groupings in the middle. Fix #1180.
Merge pull request #1181 from dsheets/group-parse

Parse version constraints even with groupings in the middle. Fix #1180.
Merge pull request #1178 from avsm/clarify-manpage

clarify the `opam-admin make --help` with for recursive downloads
Actions display: fixed bogus 'conflicts with' for non-existing packages
typo in message
Merge pull request #1184 from diml/master

typo in message
Fix printing of backtraces within switch_backup
Always look in the environment for user-provided variable overrides

This let us do:

```
export OPAMVAR_bin=/usr/local/bin && opam install foo
```
Fixed lack of confirmation when doing 'opam remove -a'
When applying a solution, download all data before proceeding