[AW NS] Initial AndroidStreamReaderURLLoader implementation and tests

This patch implements the initial bits for the custom URLLoader that
reads from an android InputStream and returns the results
(instead of fetching response from an actual network).

The general idea is to have this custom AndroidStreamReaderURLLoader
take care of a number of things:
1. provide response in the context of shouldInterceptRequest
callback
2. allow to read special url like file://android_asset/ to
obtain app resources and assets.

This patch aims to provide support for the shouldInterceptRequest
callback. In particular it makes sure the stream is opened, correctly
positioned (range seek), response headers are initialized, etc...
Going forward some bits will be implemented further: i.e. returning
and writing the actual body response via mojo pipes.

Approximately speaking the AndroidStreamReaderURLLoader is the
network service counterpart of AndroidStreamReaderURLRequestJob
(which is used by the current net/ code path).

The patch also adds some relevant corresponding unit tests for the
loader.

BUG=893566,841556

Change-Id: I15247813f2b359445a2e9d45a18c8e595dfebdb2
Reviewed-on: https://chromium-review.googlesource.com/c/1363184
Reviewed-by: John Abd-El-Malek <jam@chromium.org>
Reviewed-by: Richard Coles <torne@chromium.org>
Reviewed-by: Clark DuVall <cduvall@chromium.org>
Commit-Queue: Tim Volodine <timvolodine@chromium.org>
Cr-Commit-Position: refs/heads/master@{#615498}
6 files changed