Move cli deps into one source
Support non-promise returning functions
Refactor reporting to use promises
Refactor, remove util.map and replace with util.all