Handle shell command failures gracefully.
Fix tab completion for branches with a dot

Completion after the dot would be seen as a new branch name. This is correct
behaviour for two dots (e.g. HEAD~2..master) but not for one dot (e.g.
fix-v1.4)

Includes a refactoring of the Completer unit spec, to reduce the amount of
repetition.
Set $PROGRAM_NAME so that gitsh shows up as 'gitsh'
Allow the parser to understand upper and lower case letters.

We should pass bad commands onto git to get the standard
"git: 'X' is not a git command. See 'git --help'." message.
Version bump: 0.5
Arch package for version 0.5
The tarball is for version 0.5
Fix 'Error: undefined method `sub' for nil:NilClass' when newline is included git alias

When there is at least one newline in git aliases like:

    ln = log --pretty=format:'%C(blue bold)%h %C(yellow bold)%cd %C(magenta bold)%cn %C(red bold)%d\n\n%C(white bold)%s\n%Creset%b'

tab completion fails with 'Error: undefined method `sub' for nil:NilClass'.

This commit fixes the issue.
Rework specs around completing '~'.

This is because if there were no files in '~', the previous test would fail.
So instead, check for directories (which are more likely).

Also adds a test ensuring directory completion functions.