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