Refactored Api::send() to return Promise in addition to callback-style result.
In addition added useful error information in the promise rejected result.