This utility class provides an abstraction layer for HTTP calls via fetch(). Its purpose is
to provide common, SDK-wide behavior for all HTTP requests. Included are:
- Providing a common extension point for request and response manipulation.
- Access to default headers.
In the future, this class chould also be extended to provide:
- Some form of progress() support for large uploads and downloads (perhaps via introduction of Q)
- Convenience decoding of the response body, depending on Content-Type.
- Internal error handling (At this time, HTTP errors are passed to then() rather than catch()).
- Other features.
Change-Id: I8173554b1b7ef052e2a74504b98f4ec574ce6136