Provide Version fix when project is copied to foreign GIT repository

Implement fix for Version to not cause Exception when the project's
source code is copied to a foreign GIT repository.

The fix is to specify an optional project-name, passed to Version. If a
name is provided, the code obtaining version information from GIT first
tries to verify we are in the correct GIT repository. A simple heuristic
was implemented, which checks the output of 'git remote -v' for the name
of the project.
Isn't _git_cmd() actually a reasonably general wrapper for calling a subprocess to get output and catch errors?  If so, shouldn't it move out of git_fetch and into a regular method named something like run_cmd()?  That way the git-specific code would be much shorter and easier to read, and it would be clearer how to edit the file to support other version control systems.