Don't use user's gitconfig when running specs.

We achieve this by setting `$HOME` to a temporary directory whenever we're running an integration spec. We write an `.inputrc` to the temporary `$HOME` directory to avoid bells during the tab completion spec.

This added some complexity to the `GitshRunner`, so we refactored.

Fixes #110