Allow Grit::Repo to be initialized with a directory that is below the project root.

This is an issue we ran into when trying to capture the commit sha for a directory when not at the project root. We have scripts that run from within subdirectories.

Something like this:
```
project_directory
   - .git
   - client
   - server
     - deployment scripts
```
We need to run deployment scripts from within the directory of that name.

test_repo didn't fully pass tests, but it looks like that's because it expects to be on a branch named master, which I wasn't. My new test did pass, however.