Ensure that Git revision-parsing doesn't result in errors in repos with no commits

Fix for https://github.com/bundler/bundler/issues/2637. It turns out that this can occur not just with `bundle outdated`, but also `bundle show` with a new repo, which is what I used for the new spec example.

Sorry about the diff cruft in spec/commands/show_spec.rb - it's mostly indentation changes from arranging the spec into high-level contexts; the new example/context is in https://github.com/tdumitrescu/bundler/commit/738e42c87594eb67c0b25586348a99b51fd31c86

I followed the code in `GitProxy` in redirecting to `/dev/null` rather than using open3, because "open3 is not cross platform until Ruby 1.9.3". This won't hide legit Git errors (like git not being installed...) because the new code in `#null_command` will rerun the command without redirection if it doesn't produce anything on `$stdout`.

How does this approach look?