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/
I have a feeling that I shouldn't be paying attention to all three of `.installing`, `.waiting`, and `.active`, but I'm not sure which ones will correspond to a `ServiceWorker` that I should actually care about. (It's not always going to be `.installing`, is it?)