Interim change for using testharness.js from serviceworker tests.

The W3C testharness.js currently doesn't work from within a web worker
or a service worker. While this is being addressed upstream, this change
introduces worker-test-harness.js as an interim fix. It exposes symbols
to allow testharness to load and sets up handlers for capturing test
results that are then sent over to any client document that requests it.

New Service Worker tests should pull in the worker-test-harness.js as
follows:

    importScript('worker-test-harness.js');

The client document should invoke load the test harness using
service_worker_test() from resources/test-helpers.js:

    <script src="resources/test-helpers.js"></script>

    <script>
      service_worker_test('resources/my-worker-test-script.js');
    </script>

The service_worker_test() function handles:
  * Unregistering and registering the worker.
  * Create a message port and request test results from the worker.
  * Replay the results in the client document so that reporting
    infrastructure can properly report the results.

The test service worker is assigned to a scope that's unique to the top
level document:

   <origin of top level document>/service-worker-scope/<document-path>

BUG=374822

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

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