Move exit code to cli.coffee

This moves it out of the path of the specs and they can now just verify
the callback errors directly.
Remove unused process.exit spy
Expect error to be null instead of undefined