Use v8::Contexts rather than GURLs as keys to extension service workers.
The current code uses GURLs mostly for legacy reasons - v8::Contexts weren't
exposed from the Blink layer, only GURLs. However GURLs aren't enough to
uniquely identify service workers, because there may be multiple registered at
once.
Fixing this lead to some other correctness fixes and cleanup.
BUG=501569
R=rdevlin.cronin@chromium.org, jochen@chromium.org
Review URL: https://codereview.chromium.org/
1337453003
Cr-Commit-Position: refs/heads/master@{#348671}