Pass a script file as an argument.

* Renames Comment to Noop.
* The parser will match blank lines. This never happens in interactive mode
  because of the default command.
Namespace command classes

Move all command classes under the `Commands` namespace. This helps quick
scanning of which classes are commands, since not all of them end with the
word `Command`.
Add $_prior, $_rebase_base, $_merge_base variables

* `$_prior` is like `@{-1}`, but easier to remember and search for. It also
  expands to the name of the prior branch, so it can be used for things like
  `push origin :$_prior`.

* `$_rebase_base` is the base onto which we are currently rebasing, e.g. for
  `rebase --onto foo bar baz` it would be the SHA1 of the head of the `foo`
  branch.

* `$_merge_base` is the base commit of the current merge. Equivalent to
  `merge-base HEAD MERGE_HEAD`.
Execute scripts piped to STDIN.

Commands will be read from the standard input when

* the standard input is not a TTY, or
* '-' is passed instead of a path to a script file.
Tweak help: command is not optional.
Added :q alias for :exit command
Improve integration specs.

* Add missing _spec prefix to one file
* Rename ambiguous specs
* Merge duplicate contexts
* Fix typos
Support commenting of partial lines.

e.g. `add . # Add all files`
Add a :help command

`:help` on its own will show a list of internal commands, and `:help
command` will show help for the given internal command.

This commit also extracts the various internal command specs from
spec/units/commands/internal_command_spec.rb into their own files.
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.
Tidy up exception expectation.