Add WorkerReportingProxy::willDestroyWorkerGlobalScope() method

Before r169460 workerGlobalScopeDestroyed() used to be called in
WorkerGlobalScope's destructor, but after r169460 it has started
to be called *after* WorkerGlobalScope destruction, which broke
ServiceWorker code that was relying on the validity of WorkerGlobalScope
in workerGlobalScopeDestroyed().

To clarify the behavior of this notification (since the method name
suggests it's called during or after destruction) this patch adds
WorkerReportingProxy::willDestroyWorkerGlobalScope()
which is guaranteed to be called *before* WorkerGlobalScope is actually
destructed, and use the method for last-minutes cleanup in ServiceWorker.

chromium-side patch is:
https://codereview.chromium.org/238603004/
BUG=361790
TEST=content_browsertests:ServiceWorker\*

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

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