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)
It doesn't seem as though this class is so tightly coupled to `Subshell` that it needs to be nested. Maybe it should live in its own file, with its own identity and personality.