Dispatches a request to an API endpoint described in the request.
An ApiClient is expected to resolve the Promise in the case an API returns a non-200 HTTP
status code. The responsibility of translating a particular response code to an error lies with the
caller to invoke.
Default implementation of ApiClient which uses the native HTTP/HTTPS library of Node.JS.