Executes a request and returns the response. The status code, response body and headers should all be returned if
any response is received from the server, regardless of status code. If the request fails due to a transport error,
a
BrightpearlHttpException should be thrown.