Clean remote directories before copy.
Reporters emit and bind their own events.

- Reporters are now EventEmitters that fire end
  instead of calling `this.cli.exit`.
- Move exitFn logic from Console back to CLI.
- CLI uses `end` events from Reporters to call its exitFn.
- Event binding occurs in Reporter's bindEvents instead of
  inside cli.js.
- Reporters get access to options object for reading
  configuration -- such as a directory for writing output.

Prepare the way for reporters to write to files in a directory.