Trim the universe before computing brute force heuristics.

Remark: we don't trim it before as it is useful to have a full universe to better report error messages.
Fix duplication of error messages in case of conflicts (see #474)
Add a function to keep only installable packages
In opam list, only display the installable packages.

This fixes #474
Merge branch 'master' into HEAD
Bump version
Fix #473 and #469

Now:

    opam info foo.version

will display the metadata associated to this given version
Update CHANGES
Fix typo in 'opam info'
Display dependencies and optional dependencies in 'opam info'
Improve the error message when trying to upgrade a pinned package.
Update CHANGES
Fix partial upgrade.

Now:

    opam upgrade foo bar

Will only upgrade foo and bar (and the necessary dependencies).

Also simplify *a lot* the management of packages to be reinstalled: this is now always done when we add/remove packages, in the same way the installed and installed.roots file are managed. This should make the whole process much more robust (especially in case of errors).
First draft of external dependency handling