Parse empty string arguments correctly.

When the parser encountered an empty string (e.g. `""`) it was matching the
`soft_string` or `hard_string` rule, but didn't include any named matches
(i.e. any `literal` characters) so it returned the whole matched string
instead.

After experimenting with various ways of matching the opening and closing
quotes, it ended up being a smaller and more understandable change to just
add a rule to explicitly match empty strings.

Fixes #139
Support commented lines.

Any line beginning with a # will be treated as a comment and ignored. A #
later in the line doesn't (yet) indicate a comment.
Prevent blank lines from causing a parse error.

This was an issue as most commands currently can be preceded by
spaces, but there was no rule to support spaces alone.

The behaviour of a blank line is now identical to that of an empty
line; by default the `git status` command, overridden by
gitsh.defaultCommand
Wrap the binary in C.

This will allow us to use gitsh as a sh-bang line, and hopefully to set the
process name correctly. The C code has deliberately been kept as simple as
possible; the intention is to keep the majority of the functionality in
Ruby.
Extract a TermInfo class.

So far, we've only used the `tput` command to determine if the terminal
supports colours. In order to fix the window size bugs, we'll also need to
use `tput` to get the size of the terminal emulator. Extracting a TermInfo
objects lets us do that without any repetition.
Make dependency explicit.
Don't wrap injected Readline object.

If the InteractiveRunner wraps whatever injected Readline object it's given
in a ReadlineBlankFilter, then we have to provide a bigger interface than we
would otherwise need.
Handle SIGWINCH, and tell Readline to resize.