Made git commands work despite values of `GIT_DIR` and `GIT_WORK_TREE`

The previous method for interacting with a bundle via git involved
cd'ing into the bundle directory then running the relevant git commands.
The problem with this approach is that if the environmental variables
`GIT_DIR` and `GIT_WORK_TREE` are set at this point then git will
preference their values over those implied by the current directory.
(This can cause trouble for vcsh users, for example.)

This patch uses the git arguments `-C`, `--git-dir`, and `--work-tree`
to specify the location of the bundle explicitly. This overcomes the
original problem since git gives these values precedence over `GIT_DIR`
and `GIT_WORK_TREE`.