Fixes race conditions in tests

  + Introduces AsyncExecuteCommand test helper which returns
    a channel that it closes after the command is done executing.
    This should be used to test commands that require input,
    or require modifying state as the command executes
    eg incrementing a fake timeprovider

Signed-off-by: Chelsea Troy <ctroy@pivotal.io>