Start to implement FetchEvent for ServiceWorker

Now a service worker can handle a fetch event and call event.respondWith
to pass a response back.

Currently dispatching the event and receiving the response is not hooked
up in Chromium side. The plan is to use the Response object from the
service worker's script to create a ServiceWorkerFetchResponse that
is sent in an IPC message back to the browser.

No test is added. It will be tested in ServiceWorkerVersionBrowserTest
once hooked up in Chrome (I've done this locally). Testing
Response in a layout test would be ideal but we currently don't have
a way to do a layout test in the service worker's context.

BUG=342301

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

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