Allow specifying the pinning version with 'opam pin add'

Closes #1799
Also cleans up pinned package update a bit
Allow explicit update of an uninstalled dev package