Make zuul usable programmatically.

Doing `require('zuul')` now gives a documented API. The CLI is reimplemented in terms of this and should be unchanged.

Also added a basic test, that running the zuul binary against a simple Mocha test that uses `require('assert')` ends up passing.