extend npm to support stay repository metainfo, and support version as a repository branch, tag, commit id when you install some module