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