Tweak HTTP client `request` API

1. Wrap callback in exception handler to prevent undeliverable promises.
2. For flexibility, return separate :cb-result key as part of promise
   response.