Add support for git volumes.

One comment here - we are having the debate in OpenShift about what to use in a similar spot for Git (for builds), and had been leaning towards `Commit` because that's what `git checkout` uses from the doc:

    git checkout [-q] [-f] [-m] [--detach] <commit>

Revision is also valid (`git rev-parse`), and is a bit broader in scope across other SCMs.  So neither is wrong, but we do want to be consistent.  Is there a strong preference for Revision here over Commit?  Other arguments we've missed?