Media Remoting: Data/Control plumbing between renderer and Media Router.

Introduces the new media::mojom::Remoting* interfaces, which provide the
control and data flows across browser processes for a new media remoting
feature. These interfaces allow a renderer to connect the local media
pipeline to a remote media rendering stack.

Also, a Cast-specific implementation of these interfaces is provided,
which allows media remoting sessions to be established within the
context of a Cast Tab Mirroring session. This implementation uses the
Chrome Media Router infrastructure to perform the discovery and
selection of remoting-capable devices, establishing media routes for
this new feature.

This change provides one major component, among others, for a complete
end-to-end media remoting feature. By itself, no new code paths are
activated yet. Future code changes will provide integration with other
efforts, such as:

  https://codereview.chromium.org/2307653002/
  https://codereview.chromium.org/2261503002/
  https://codereview.chromium.org/2342163003/
  ...and the Media Router component extension.

BUG=643964

Review-Url: https://codereview.chromium.org/2310753002
Cr-Commit-Position: refs/heads/master@{#420812}
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
index be47060..c27862b 100644
--- a/chrome/browser/BUILD.gn
+++ b/chrome/browser/BUILD.gn
@@ -3667,8 +3667,11 @@
     deps += [
       "//chrome/browser/media/router",
       "//media/cast:net",
+      "//media/mojo/interfaces:remoting",
     ]
     sources += [
+      "media/cast_remoting_connector.cc",
+      "media/cast_remoting_connector.h",
       "media/cast_remoting_sender.cc",
       "media/cast_remoting_sender.h",
     ]