[BlobAsync] Asynchronous Blob Construction Final Patch
This is the final patch that hooks up the blob storage system to the new
async protocol. In this patch we:
 * Hook up the new classes and modules we created in the previous patches.
 * Remove the old way of creating blobs.
 * Create a few classes like blob_message_filter and blob_dispatcher_host
   for handing IPC messages.

The result of this change makes renderer-initiated blob construction
asynchronous instead of synchronous. So constructing new blobs should be
faster, but the time from construction to read should be the same, as
the reading still has to wait for the blob to be transferred to the
browser.

Because we let the renderer continue before we've sent all of the data,
we use ChildProcess::AddRefProcess() system to keep the renderer alive
while we transfer data.

Patches:
1: https://codereview.chromium.org/1287303002 (committed!)
2: https://codereview.chromium.org/1288373002 (committed!)
3: https://codereview.chromium.org/1292523002 (committed!)
4: https://codereview.chromium.org/1098853003 (committed!)
Hookup: https://codereview.chromium.org/1234813004

BUG=375297

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

Cr-Commit-Position: refs/heads/master@{#384093}
63 files changed