Cherry pick Add support for loading pak files from arbitrary file regions

Cherry pick of Chromium
https://src.chromium.org/viewvc/chrome?view=rev&revision=285945

conflict:
  ui/base/resource/resource_bundle.h

Add support for loading pak files from arbitrary file regions.

This is to support a new use case for Android: mmap a pak file
directly from the APK (where it will be stored uncompressed)
without extracting it first. This would save both precious space
on the flash and startup time on the first run.
This CL introduces:
 - the necessary changes to base::File to memory map arbitrary
   regions of a file.
 - The corresponding changes (plus unittests)  in DataPack and
   ResourceBundle to take advantage of the new support.
   At present state, this CL is not intended to introduce any
   behavioral change.

BUG=394502
Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=285945.

Bug: 16723226
Change-Id: I0ab9588e1c532ee339824dfabf89a73c316cf079
11 files changed