WIP - Move VCS impls to subpackages and create central Opener/Cloner registries

:construction: :construction: :construction: :construction: :construction: :construction: :construction: :construction: :construction: :construction: :construction: :construction: :construction: :construction: :construction: :construction: :construction: :construction: :construction: :construction: 
**work in progress, comments welcome**
:construction: :construction: :construction: :construction: :construction: :construction: :construction: :construction: :construction: :construction: :construction: :construction: :construction: :construction: :construction: :construction: :construction: :construction: :construction: :construction: 

The API for go-vcs is very messy. This PR fixes it by:

1. Moving VCS implementations (git, gitcmd, hg, hgcmd) to separate subpackages.
1. Handling open/clone operations using a registry that VCS impl packages register opener/cloner funcs in.
1. Removing extraneous types (`HgRepository`, `GitRepository`).