Correct relative shell command parsing

This also makes some changes to identifier parsing. It replaces the A-z
pattern match with a more specific one that does not implicitly match characters
in between Z and a in the ASCII table. Also adds some necessary explicit
matches for underscores and such. Improves variable and identifier parsing
specs.
Mimic sh(1) when handling unset variables.

If an unset variable is used as an argument, it is dropped from the argument
list.

For example:

    & commit -m $foo
    error: switch `m' requires a value
    ...
    & :set foo "This is a commit"
    & commit -m $foo
    (a commit is created)
Flesh out installation instructions.

Adds an INSTALL file to the distribution tarball explaining the subtleties
of installing gitsh that can sometimes cause problems:

1. Rubies from Ruby version managers are ignored.
2. GNU Readline and libedit have some differences.
Version bump: 0.7
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.