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
Clean-up the handling of tags in OPAM files.

For the user, the main change is the move from 'ext-deps' to
'depexts'. This is not very nice, but at least it stays consistent
with 'depopts'. But maybe the good move it to rename depopts to
opt-detps ...
Plug a query system to the external dependency tags.

Now: 'opam install <query> --external=<comma-separated-list-of-tags>'

will look for all the packages which need to be installed by the query
and return all the values associated to the tags which are subsets of
the given list of tags.

For instance, if we have: packages/foo.v/opam

   depexts: [
     [ "debian"          "foo"]
     [["debian" "amd64"] "bar"]
     [ "amd64"           ["toto" "titi"]
   ]

Then:

   opam install foo.v --external=debian,amd64  # return: bar
   opam install foo.v --external=debian        # return: foo bar
   opam install foo.v --external=amd64         # return: bar toto titi

Remark: the tags and their values are unordered.

Hopelfully this system will be flexible enough to fix part of the
external dependencies problem (it will at least help opamalot).
Try to keep the metadata consistent when saving them to disk.
Update CHANGES
Change the way we detect existing commands

`which` seems not very portable, so use `type` instead, because "type is standardized in POSIX" (thx @dbuenzli).

This should fix #471 and improve the BSD support.
Update CHANGES
teach opamGlobal and opamSystem.patch about NetBSD and DragonFlyBSD
Revert "Change the way we detect existing commands"

This reverts commit e157b5fd1e1bbe1749b2440487d3b7995592f356.
Merge pull request #480 from adegroote/more_bsd_support

Teach opamGlobal and opamSystem.patch about NetBSD and DragonFlyBSD
Improve the API. There are still some global state (the main one being the filesystem -- it will be quite hard to abstract other it I'm afraid) but it's now easier to do all of the action available on the command-line using the API.

An example:

   let pkgs = OpamPackage.Name.Set.of_list [OpamPackage.Name.of_string "core"] in
   OpamClient.API.install pkgs

The message are still displayed on stdout/stderr so that could be a bit awkward.
Merge branch 'master' of github.com:OCamlPro/opam
Update the HTML docs
Update the man pages
Update the tutorials