Minor fixes

- More fixes to `promise()` logic relating to chain resolution
- Updated `client.request()` to return a chained promise for expected results (if chaining it)