Correct error callback. TODO: add tests for errors.
Ignore bad packages. Pipe instead of nested async.

Bad package.json (i.e. invalid json) was throwing.
Required wrapping in another function to have
errors ignored.
Trying streaming approach instead, removes async nesting
at least. Gets ugly when mixing regular functions with
streams. Lots of brackets. Whatever.
Whitespace
Add log.error

For cases where you want to log an error, but not process.exit