[ServiceWorkerCache] Make ServiceWorkerCache::Put guarantee callback like the header says
The Put() function performs an async init() with a weakptr callback.
If the weakptr is null then the callback won't be called, breaking the
contract that Put()'s callback will always be called.
This CL fixes that by making the PutImpl callback a static member (so
that it can access Cache::backend_). The other Put callbacks and its
necessary classes came along for the ride.
Upstream of: https://codereview.chromium.org/
649203005
BUG=426964
Review URL: https://codereview.chromium.org/
658583006
Cr-Commit-Position: refs/heads/master@{#301355}