Improve error messages in OpamSystem
On upgrade, if we recompile packages because of upstream changes (which is typically the case when we use dev packages), remember which packages successfuly build and install to not have to handle them again on the next upgdrade.

This was working well when we were upgrading because of new packages, so now the behavior is much more consistent.
Always create a new archive from 'git -tar' when using dev packages, this is much more robust (and it not much slower anyway).
Add consistency checks when using 'opam pin'.

This will make the semantics easier to understand (but one could still use --force to bypass the checks).

This should fix #384