Consolidated callback params and returning a promise.

- The callback parameters are now consolidated into a single results
  object that passed to the callback.
- The `juve` function now returns a promise that resolves with the
  results object.