[Media Router] Add DialMediaSinkService and DeviceDescriptionService

Discover process:
  DialMediaSinkService.Start() registers itself with DialRegistry
  DialMediaSinkService.OnDialDeviceEvent() gets invoked when device data comes back, and starts a 3s timer
  Start description fetches for each device
  DeviceDescriptionService.OnDeviceDescriptionFetchComplete() gets invoked when device description comes back.
  Starts an XML parser in utility process to parse device description XML
  DialMediaSinkService.OnDeviceDescriptionAvailable() gets invoked when parsing in utility process finishes
  Create MediaSinkInternal and store it in DialMediaSinkService's sink map
  Invoke DialMediaSinkService.FetchCompleted() when timer expires

Design doc:

https://docs.google.com/document/d/1lJbE4Oc9q1amkWEaD2ZL4mHEdRRlKHvwxUUcJmNC8b8/edit#heading=h.ur85je1upm9u

BUG=687375

Review-Url: https://codereview.chromium.org/2701633002
Cr-Commit-Position: refs/heads/master@{#468251}
24 files changed