Basic subshell support

Introduces parsing for subshells, a Gitsh::Arguments::Subshell object to
handle running the subshell, and a Gitsh::CapturingEnvironment to capture
and return the output of commands executed in the subshell.

Whitespace is collapsed in subshell output, to match the behaviour of sh(1)
et al.