[Mojo Video Capture] Adapt video_capture service to refactored video capture stack

This CL is part of the Mojo Video Capture work. For the bigger picture,
see [1] CL22b.

Note: The video capture service implementation is currently in an incomplete and
outdated state and its tests are disabled. With the refactoring of the legacy
video capture stack now being complete, the next goal is to update the service
implementation and fit it into the refactored stack.

Changes in this CL:
* Update Mojo interfaces to more closely resemble their native counterparts.
  - video_capture.mojom.Device offers functionality similar to
    VideoCaptureDeviceLauncher + LaunchedVideoCaptureDevice.
  - video_capture.mojom.DeviceFactory offers functionality similar to
    media::VideoCaptureProvider.
  - video_capture.mojom.Receiver offers functionality similar to
    media::VideoFrameReceiver.
* In the service implementation, use a VideoCaptureSystem instead of a
  VideoCaptureDeviceFactory directly.
* Add new adapter classes for plumbing between Mojo service and its usage in
  the native code.
* Re-enable existing video_capture_unittests and add a few more.

BUG=584797
TEST=
  service_unittests --gtest_filter="*Video*"
  content_unittests --gtest_filter="*Video*"
  content_browsertests --gtest_filter="VideoCaptureBrowserTest.*"

[1] https://docs.google.com/a/chromium.org/document/d/1Qw7rw1AJy0QHXjha36jZNiEuxsxWslJ_X-zpOhijvI8/edit?usp=sharing

Review-Url: https://codereview.chromium.org/2818513003
Cr-Original-Commit-Position: refs/heads/master@{#467398}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 308b44e5bfb17c42ca3ea5b4fa5ed66c2698107b
7 files changed