better error messages
don't shell out unless we have to
Merge pull request #21 from heroku/schneems/better-git-handling

Schneems/better git handling