Refactor src_ext Makefile to ease dependency updates
Use cmdliner 0.9.3
Really fix the weird uninstall problem

I've finally nailed down issue #348 (and #362). The issue was indeed caused by da0d7de9da7e634d19cdf1355c295ec274ad10df:
* This commit is implementing an useful optimization: in case the remove command is 'ocamlfind remove XXX' only, then OPAM don't create ~/.opam/<switch>/build/<pkg> anymore. Which means increased uninstall time.
* However, the uninstall command was still run in ~/.opam/<switch>/build/<pkg>. If that directory does not exists, the command was just dropped silently.
* OPAM automatically removes ~/.opam/<switch>/lib/<pkg>, so when the package was not using C bindings (with stub files in ~/.opam/<switch>/lib/stublibs) the bug was hidden
* Using OPAM with OPAMKEEPBUILDIR=1 (which means that the build dir wasn't removed during upgrades) hides the bug

So now I've fixed the bug:
* when we do an exec in a given dir, OPAM fails if the dir doesn't exist
* on uninstall, if the build dir is not there run the uninstall command at the OPAM root

This should fix #362
Merge pull request #361 from tuong/master

[tests] provide more checking
Fix #361

%{package.section:variable}% is confusing but '.' is the only non-ambiguous package name separator in OPAM currently. So instead, warm the user when he tries to use that syntax incorrectly.
Revert "[tests] provide more checking"

This reverts commit ae17b348c2b4c711aa105e08ff839e5650896ac2 because 01754cf1e28619e378c80ceb1feb959a145e075e correctly warms the user about his mistakes now.
Change --cores to --jobs to be more consistent
Change cores to jobs in the code as well
Do not display "ocamlc: command not found" when initializing OPAM when no compiler is available
Remove the "-c" short-cut to "--comp" because "-comp" is then understood to "-c omp" which is quite ambiguous
Improve error reporting on 'opam init'.

* better error message in case the repository address is invalid
* better error message in case the compiler name is invalide

This should improve #357
Clean-up some tests, add an option to be a bit less verbose
Raise internal_error in opamSystem.ml: this means the error will be reported nicely by OPAM when the error happens in a child process (ie. while building)
Use a pipe instead of a temp file to marshall back errors from child processes to parent.

This should fix #349
[opam-repo-check] add an option to normalize the files (read only by default)
[opam-repo-check] we continue 5a1b83898151bc00247488ca95f07b6cbf75fc0f
Improve the message displayed to the user when we reinstall packages.

Now OPAM display either:
* the root causes of the reinstall (ie. the package which caused the reinstallation)
* or the fact that the package has been modified upstream
Fix a bad bug with wrong environment setting.

Sometime, it 'opam config env' hadn't been called in the current shell, some package build was failing miserably. This commit clean-up a lot of small things in the management of environements, so now 'opam install XXX' should always work even if the user has a wrong environment set-upt.
[opam-repo-check] add an option to repair most of warnings found when analyzing files
Fix Makefile oldity