Support ruby21

Some systems (e.g. OpenBSD) name their Ruby 2.1.x as `ruby21`. This is a
supported version, so handle it.
Add OpenBSD instructions

Removed the `On ` prefix in the instructions to reduce redundancy.

The gitsh port and package are in OpenBSD 5.7+, which is not yet
released, so the instructions target -current. The package mirrors are
not even caught up yet but they hopefully will be soon.

http://cvsweb.openbsd.org/cgi-bin/cvsweb/ports/devel/gitsh/
Add OpenBSD to list of OSes in INSTALL.txt

This should be updated again when OpenBSD 5.7 comes out, around June 2015.
WIP: Subshells

Introduce parsing for subshells, and a Gitsh::Arguments::Subshell object to
handle running the subshell.

Currently, the output of the subshell goes to STDOUT, instead of being
captured and returned.
Capture subshell output and return it.

The previous version of the subshell integration spec wasn't catching the
fact that the subshell output went directly to stdout, instead of being
returned to the parent command and used as an argument.
Support subshells embedded in double-quoted strings.
Strip whitespace from subshell output.

* Trailing line breaks are removed.
* Any whitespace is collapsed down to a single space.
Failing spec for isolated environment.

This spec should show that the environment is isolates from its parent.

Blocked by https://github.com/thoughtbot/gitsh/issues/197
Isolate environment changes in the subshell.
Object#initialize_copy does some useful checking.
Extract CaptruringEnvironment to its own file.
Use SimpleDelegator for CapturingEnvironment
Remove default interpreter factory.

So as to allow Inversion of Control.