Asynchronous HTTP requests

HttpRequest object expanded to be a usable HTTP interface providing
a 'promise' response, allowing both syncronmous and asyncronous requests
with error reporting, infinite callbacks, and access to raw and decoded
response data.

Added HTTP request methods _enqueue and fetch, as simple utility methods
for HttpRequest.

Bug: T57889
Change-Id: I4f71b39d6402abefed5841d4ea67a7ac47cc46a2
Merge "Asynchronous HTTP requests"