Add feature to switch tags on downloaded package

And now something completely different ...it's still same code from `go get`.
Well now it can switch versions of downloaded from VCS package and this feature
brought ...by `go get` internal functions. So I not added anything new. Seem
like only tags and branches switched but commits are not (tested on git). Need
dig further to `go get` or rewrite this part with own code.