[Blob] BlobReader class & tests, and removal of all redundant reading.

* New BlobReader class & tests
* Removal of other reading code, which now uses the BlobReader
* Removal of unnecessary UploadDiskCacheEntryElementReader
* Removal of blob expansion logic in UploadDataStreamBuilder

Now it's very easy for anyone in browserland to read blobs instead of
having to do url requests, and it's also easy for anyone to add new
blob backing storage.

This is a prerequisite for the new blob async transportation, see here:
goto/BlobPaging

BUG=138051,375297

Committed: https://crrev.com/02561552a57ed8792a8ebb2676bad485e1d99605
Cr-Commit-Position: refs/heads/master@{#351470}

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

Cr-Commit-Position: refs/heads/master@{#351611}
26 files changed