add command runner

Provides an object that can be used to run commands, and, more importantly,
a fake command runner with a rich set of matchers for asserting which commands
were run.

This is vendored from Garden, with the removal of ServerRoot (which should
really be nixed from Garden as well).

Signed-off-by: David Varvel <dvarvel@pivotallabs.com>