[CacheStorage] Keep deleted caches alive until last reference is gone

Currently once a cache is deleted via CacheStorage::Delete the associated
CacheStorageCache is closed and subsequent calls to it fail. This CL keeps
the CacheStorageCache alive, waiting to delete it from disk until after the
last cache handle has been dropped. This change is to conform with the
spec.

BUG=618646

Review-Url: https://codereview.chromium.org/2111243003
Cr-Commit-Position: refs/heads/master@{#403837}
7 files changed