Change class VideoCaptureDevice::Name to struct VideoCaptureDeviceDescriptor.

The purpose of this change is to simplify the VideoCaptureDeviceFactory interface in preparation for making it a Mojo interface in a future step. In particular, we want to remove the platform-dependency of the interface.

No new functionality added. This is a refactoring.

This CL is a step towards the larger goal of Mojofication of Video Capture.
For the bigger picture, please refer to the design document at [1].

* Changed VideoCaptureDevice::Name to a struct VideoCaptureDeviceDescriptor
  with a platform-independent interface. Moved out of
  video_capture_device.h/cc into new files
  video_capture_device_descriptor.h/cc.
* Instead of a method VideoCaptureDevice::Name::GetModel(), have |model_id|
  be a public field in struct VideoCaptureDeviceDescriptor. Moved the logic
  for determining the |model_id| into the platform-specific factory
  implementations. As a side-effect, this change eliminates the need for
  code that was added in issue 532272 [2].
* Rename VideoCaptureDeviceFactory::Create() to
  VideoCaptureDeviceFactory::CreateDevice()
* Moved struct VideoCaptureDeviceInfo closer to its usage. Moved from
  media/capture/video to content/browser/media.

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

BUG=584797
TEST=Existing tests still pass (trybots). Verified
     that issue 532272 does not regress by trying the repro steps in the crbug entry. Successfully conducted an apprtc loopback session on Linux.

Review-Url: https://codereview.chromium.org/2169013002
Cr-Commit-Position: refs/heads/master@{#409199}
53 files changed