ServiceWorker: Migrate the script cache backend from BlockFile to Simple

This CL switches the backend of ServiceWorkerDiskCache from BlockFile to Simple,
and migrates cached resources before initializing the diskcache.

* DiskCache migration consists of 2 parts:
1) Copying contents into a new diskcache. This should be complete before
starting diskcache initialization.
2) Lazily removing an old diskcache after migration is complete.

* These migration states are recorded in ServiceWorkerDatabase. If migration
is aborted in the middle of the execution, the retry will happen on the next
initialization.

* If migration fails, DeleteAndStartOver runs and creates a new storage.

BUG=487482
TEST=content_unittests --gtest_filter=ServiceWorker*
TEST=content_browsertests --gtest_filter=ServiceWorker*
TEST=manual (run Chromium with an old diskcache and make sure migration correctly happens)

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

Cr-Commit-Position: refs/heads/master@{#334811}
15 files changed