[DevTools] Implement mojom::DevToolsAgent for workers

1) Use blink::DevToolsAgent in WorkerInspectorController.
This replaces the ad-hoc interface for communicating with worker's debugger with
a mojo interface used for frames and shared/service worker's shadow pages.

2) Create WorkerDevToolsAgentHost. This is similar to other
agent hosts, keeps itself alive while the corresponding worker is alive,
and reuses DevToolsSession machinery for inspection.

3) Report dedicated workers to the browser process when auto attach is on.
mojom::DevToolsAgentHost is now notified about child workers and gets
their DevToolsAgent interfaces to debug in the future.

4) Add TargetHandler to service/shared/dedicated worker sessions, to handle
communication with nested dedicated workers.

5) Retire WorkerInspectorProxy and ExecutionContextWorkerRegistry.
These are covered by DevToolsAgent now, which reports to it's host.

6) Retire InspectorWorkerAgent, which is replaced by WorkerDevToolsAgentHost
on the browser side.

The benefits are:
- unified interface for inspecting any entity including workers;
- workers now support flatten mode of operations;
- all inspection targets are now listed on the browser side and
  represented with DevToolsAgentHost, which allows for further
  simplification;
- less abstractions - we can even get rid of InspectorSession now.

Bug: 775132

Change-Id: Ib4f58677a81ce48d4c2382f05d1166f730a2e2c3
Reviewed-on: https://chromium-review.googlesource.com/c/1183589
Commit-Queue: Dmitry Gozman <dgozman@chromium.org>
Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Andrey Kosyakov <caseq@chromium.org>
Reviewed-by: Hiroki Nakagawa <nhiroki@chromium.org>
Reviewed-by: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org>
Reviewed-by: Pavel Feldman <pfeldman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#603652}
70 files changed