`exec.LookPath()` from the Go standard library, which is used by
`exec.Cmd`, implicitly searches for executables in the current
directory before searching `PATH`. This could be awkward if the Git
repository being analyzed contains a file like `git.exe` that could be
run instead of the standard system `git` binary. So introduce a way to
look for the "correct" `git` binary, record it in the `Repository`
instance, and use that binary whenever we need to run `git`.
Don't bother to make the same change in the test code, since tests are
not run inside of a potentially hostile repository.