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
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.