Merge pull request #429 from jenius/v3#cli-refactor

Refactor much of the cli
update the public API

- compile returns a promise
- watch returns a cancel-able watcher object
- no more chaining events
fix tests
add --no-open flag to watch cmd
clean up the command line help docs
add roots clean command