Subshells

Support for subshells, e.g. `:echo "In $(!pwd)"`

The current parser rules don't support nesting, which might be a blocker (see #198), but I wanted to open a PR with this before it got too huge.

(Specs pass locally, Travis is suffering from the usual Readline segfault shenanigans)
This class is only initialized once in the code, and `options` is never used outside of the tests. If you removed the default for `interperater_factory`, you'd only have to pass it in in one place, and the concrete dependency would be fully removed from `Subshell`. That would mean you wouldn't need to require `gitsh/interpreter` here, etc, and the production code would be using a more similar path to the test code.