ServiceWorker: Bypass resolving a promise when ExecutionContext is gone

This change makes CallbackPromiseAdapter bypass resolving/rejecting a promise
if ExecutionContext is gone and calls WebType::dispose() to clean up passed
WebType instance.


BUG=385906,386501
TEST=run_webkit_tests.py --debug --enable-leak-detection http/tests/serviceworker/chromium/resolve-after-window-close.html
TEST=run_webkit_tests.py --debug --enable-leak-detection push_messaging/push-messaging-resolve-after-detached.html
TEST=manual (run crash.html in the issue)

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

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