Use the same git command everywhere.

The `GitRepository` and `GitCommand` classes were using different git binaries
when the `--git` option was used. This could cause minor inconsistencies,
for example `hub` commands worked but could not be tab completed.

Fixing this revealed a potential bug in the `History` class, when a
non-numeric `gitsh.historySize` setting was used, so that's fixed too.
List similar projects in the README
Ensure transformer can handle empty string arguments
Fix ReadlineBlankFilter when readline returns nil

When readline receives an EOF it returns nil. This was causing a crash when
a user sent an EOF to quit gitsh.
Support shell commands.

A shell command can be any command prefixed with a !, e.g. `!ls` or `!pwd`
Add ability to chain multiple methods together.
Add `Pry` for easier test debugging.
Set test order to random to surface order dependencies.
Document new features.

* Shell commands.
* Combining commands (&&, ||, ;)