Port WebSockets to Mojo IPC

Key changes:
 - WebSocket support moved from content/child/ to content/renderer/ as that covers all of Blink's needs.
 - Drop Blob sending code for now as it wasn't yet hooked up, and it will need to be designed differently to work with Mojo IPC.
 - WebSocketBridge renamed to WebSocketHandleImpl, and prepped for moving to Blink.
 - Avoid explicitly passing render_frame_id by using the InterfaceProvider of the RenderFrame.
 - For SharedWorkers, which have no corresponding RenderFrame, fallback to getting the WebSocket interface from Platform::interfaceProvider().
 - WebSocketHost renamed to WebSocketImpl.
 - WebSocketDispatcherHost renamed to WebSocketManager.
 - The WebSocketManager is registered with both the RenderProcessHostImpl and RenderFrameImpl.
 - Unittests are modified substantially since they were based on Chrome IPC injection and recording. Some tests did not translate.

CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_site_isolation

Review-Url: https://codereview.chromium.org/2119973002
Cr-Commit-Position: refs/heads/master@{#410061}
49 files changed