Service Worker registration sample

@slightlyoff @jakearchibald @KenjiBaheux

Here's a catch-all sample to illustrate some Service Worker lifecycle considerations—at least as well as I understand them, and based on how they're implemented in the current Chrome Canary build. Some aspects could be broken out into smaller pieces, but I wanted to solicit overall feedback and make sure I wasn't completely misunderstanding the bigger picture before doing that.

This sample doesn't attempt to cover anything related to caching or the Push API.

There are some inline PR comments on lines that I am particularly unsure about.

You can view a live demo at https://jeffposnick.github.io/samples/service-worker/registration/
Thinking a bit more about what I initially wrote, is registering multiple of script/scope combinations overly contrived? If it's not a scenario that would come up much in the real world, I could retool this sample so that it focuses on a single registration, forces an update, and then shows how the updated `ServiceWorker` transitions from waiting to active.

Would that make for a more meaningful sample?