Implement the CacheStorage and Cache APIs for offline service worker responses.
Scope:
- Add caches.open(), keys(), has(), delete(), and match() on an origin-keyed persistent store.
- Add Cache.match(), put(), add(), addAll(), delete(), and keys().
- Normalize Request/Response keys, enforce method restrictions, and implement Vary matching.
- Persist metadata and response bodies on disk with quota-aware cleanup hooks using only std filesystem APIs.
- Support stream-backed response bodies where Phase 20 streams exist, and preserve body locking semantics.
Acceptance criteria:
- Unit tests cover cache creation/deletion, request normalization, Vary behavior, method rejection, persistence reload, and body round trips.
- JS tests cover common service worker install patterns: caches.open(...).then(cache => cache.addAll(...)).
- No external dependencies are introduced.