Make navigator.serviceWorker.ready resolve to the active worker.

This also makes 'ready' return an existing Promise, when possible.

This is based on the spec here (use the "active worker"):

https://slightlyoff.github.io/ServiceWorker/spec/service_worker/#navigator-service-worker-ready

And this bug (use the browsing context,
not the current script context's document):

https://github.com/slightlyoff/ServiceWorker/issues/356

And this bug (track the active worker of the matching
registration, don't track specific registrations):

https://github.com/slightlyoff/ServiceWorker/issues/357

And this bug (return a stable Promise object, where
possible):

https://github.com/slightlyoff/ServiceWorker/issues/223#issuecomment-46148936

BUG=363967

Review URL: https://codereview.chromium.org/369803002

git-svn-id: svn://svn.chromium.org/blink/trunk@178248 bbb929c8-8fbe-4397-9dbb-9b2b20218538