Better handling of user supplied repository argument.

Supports the full git repository URL spec instead of just the ones matching a hard-coded regular expression.

For example... the following repo URLs did not work before this change:

file:///Users/me/var/git/my-repo.git
../my-repo.git
ssh:user@example.com:my-project

Now, all repo URLs work... and using relative module names to the repo-base still work.

There is the drawback that if the repository is remote, a remote call is made to test that the repository exists.