SW Sample: Offline Analytics

@jakearchibald @ebidel & co.:

This builds on an existing sample that demonstrates offline functionality, and addresses the question of how to get a system like Google Analytics that relies on sending data to a remote server to play nicely with offline web pages.

The code queues failed Google Analytics pings in `IndexedDB` and attempts to resend them each time the service worker starts up, with the `dt=` parameter set to reflect the original time of the page view event.
I think retrying on a Google Analytics 5xx response is the right thing to do, as it's hard to imagine a GA returning a 5xx for a permanent error.

After thinking about it some more, I'm less inclined to retry on 4xx responses. I've seen situations in which Google's web servers return a transient 403 when DOS protection logic kicks in, but that's pretty much the only scenario I could imagine in which retrying later on would work, and detecting that specifically would be tough.

Sound reasonable if I switch the logic to retry on all 5xx, and don't retry for 4xx?