Reland of Migrate DeviceUtils.ReadFile to adb_wrapper (try 3)

Original description:

The implementation is based on a simple 'cat' run by shell on the
device (with optional as_root).

Interface changes:
- The return value is a string (instead of a list of lines).
- An exception is raised if the file cannot be read
  (instead of returning an empty list).

Previous CLs:
- https://codereview.chromium.org/794583004/
- https://codereview.chromium.org/775333002/

BUG=267773

Review URL: https://codereview.chromium.org/806843002

Cr-Commit-Position: refs/heads/master@{#313055}
14 files changed