Fetch local files asynchronously.
This patch implements a new fetcher that only handles local files.
While libcurl supports file:// urls, the stream can't be suspended when
accessing local files.
This new FileFetcher is based on the brillo::FileStream class which
properly handles the asynchronous reads from regular files.
Bug: 28866512
TEST=Added unittest. Deployed an update from a file:// URL.
(cherry picked from commit 2c131bbf81d8c02ade163b939c96e44aa93765e9)
Change-Id: I9949a0f214de992c2fd86c1d73aca1c1792f0de0
9 files changed