Accept OPAM_foo=1 to tell OPAM that `foo` is true or OPAM_foo=0 that is false.

(OPAM_foo=true and OPAM_foo=false are still valid)
Add new package variables.

Fix #674

I've added:

    opam config var core:version
    opam config var core:pinned
    opam config var core:bin
    opam config var core:lib
    opam config var core:doc
    opam config var core:share

and it's easy to add new ones
Improve error reporting for variables

(eg. `opam config var foo` gives now more informative messages if foo is not defined)
Fix OpamMisc.split when using special chars (as '+').

This is fixing `opam config foo+bar:installed`
Fix solver madness when a package version appears only in the optional dependency field.

OPAM is building two different views of the world: in one hand, the universe of package whith hard dependencies; in the other one, the universe of package where all optional dependencies are hard dependencies. The solver uses the first view to give a sensible solution, and then OPAM uses the second view of the world to compute the exact enveloppe of packages to recompile. Having a version string appearing only in the optional dependency makes these two views to not be in sync. I've solved this by adding a dummy package with all the optional dependencies as hard dependencies.

Fix #669
Fix stupid typos which makes the solver very confused

Fix #683
Let the solver timeout be configurable on the command-line

Requested by #685
Update the developper manual to describe a bit more .comp files

Fix #681
Add the `name` and `version` fields when saving an OPAM file without the right name (as it is not encoded in the filename itself)
Distinguish between normal package and (path-)pinned packages

This commit just add the API, but OPAM does not use it (yet).
Add handles to create ~/.opam/<switch>/pinned.cache/<name>.opam

This will be the place where we store OPAM files for pinned packages.
The goal is to let the user edit the file later if she wants to change some build commands for instance.
Clean-up some pin types, and add a new operation `Edit` to edit the OPAM file of pinned packages (not yet plugged to the command-line).

For now on, when we (path-)pin a package, we copy the relevant OPAM file in the cache of OPAM files for pinned packages. We also remove that file when a pinned package is removed.
Improve 'opam list' and 'opam info' for pinned packages
Add the ability to edit the OPAM file on the command line

$ opam pin foo <path> -e # pin + edit
$ opam pin foo -e        # edit an already pinned package
Display more information when updating a pinned package
First shot at displaying revision information for dev packages

Very limited at the moment:
- only available for pinned packages
- only appears in `opam info`
- only show the latest available version, not the one being installed

So not very useful at the moment, but at least it goes in the right direction and can be extended further later.
Update CHANGES
Clean-up pinned OPAM files when removing a package
More pinned OPAM file cleanups
fix grammar and capitalization in title