3775: Run local/dev jobs on code from arbitrary remote git repositories.
* repository is a local path X -> use local repository X or X/.git.
* repository is a git url (git://, https://, git@host:repo.git, etc)
fetch branches, tags, and objects from the remote and use the result
to resolve script_version to a commit sha1 and run the job.
* else -> look up the named repository in Arvados and use its
fetch_url as a remote git url as above.
* --git-dir is given on the command line -> use that instead of
$Job->{repository} in the above logic. (This isn't new. It ensures
we don't go off fetching arbitrary remotes when crunch-dispatch.rb
has already pulled the code into its own internal git repo.)
Incidental changes:
* Lose support for looking up subversion revision numbers using
git-svn tags.
* Lose support for CRUNCH_DEFAULT_GIT_DIR environment variable. Pass
--git-dir instead.
* Improve log messages during checkout/install phase.