Add gitconfig to temporary home directory.

Builds have been failing on Travis CI because of the temporary home
directory: there was no gitconfig, and therefore no user.name or user.email
settings, which prevent commits from being created under some Git versions.
Run integration specs in a temporary home dir.

This wraps the contents of the `#run_interactive` method in a call to
`#with_a_temporary_home_directory`.

In order to make this change simpler, we refactored the `#run_interactive`
method first, breaking it up into smaller parts.
Version bump: 0.6
Arch package for version 0.6
Add the gitsh.gitCommand git-config option

This option is used to specify what command gitsh should use to execute git
commands. When this option is specified using git-config it is overridden by
the command passed using the --git command line option when starting gitsh. The
gitsh.gitCommand variable can also be overridden inside a gitsh session by
using the :set command.

Fixes #111
Test git interaction inside a temporary home dir
--version prints what readline lib gitsh is using
Open tempfile in write mode

Fixes #148
Run test suite on Travis using ruby 2.1.1
Update CONTRIBUTING.md
Create vendor/gems if it doesn't exist

I was having an issue when migrating this code over to Liftoff where if
vendor/gems didn't exist, the entire vendorizing script didn't run. By
testing that the directory exists and creating it if not, these errors
stop happening.
Extract an InteractiveRunner from CLI

This splits the Gitsh::CLI class in two: Gitsh::CLI retains responsibility
for argument parsing, while Gitsh::InteractiveRunner takes on all
responsibility for running an interactive session.

This is partly just to keep thing clean and easy to change, and partly to
pave the way for an eventual non-interactive mode.
Improve tab completion for files with spaces.

This involved some parser changes to accept escaped characters in non-quoted
arguments.

The tab completion isn't perfect: When the argument is prefixed with a
single quote, the completed version will still get escaped, but shouldn't be
because of the hard quotes.
Integration spec covering quoted completion.
For single quoted paths, don't escape spaces.
Don't escape spaces in double-quoted arguments.
Memoize quoted method.

This will be called N+1 times for N paths.
Move integration spec to unit level.
Shorten long lines (a little)

Hound is probably still going to hate this. Sorry, hound.
Improve naming.