Plumbing input event latency reporting through Mus GPU.

Adds support for input event latency reporting for Mus.
There's two subtle differences between the Mus flow and the non-Mus flow:
- DISPLAY_COMPOSITOR_RECEIVED_FRAME_COMPONENT is logged if there are ANY latency
  components present.
- OnGpuSwapBuffersCompleted() is called if there are ANY latency components
  present.
In non-Mus flow these are done only when there are browser-specific latency
components present. In practice this shouldn't have any effect on UMA latency
reporting, because currently OnGpuSwapBuffersCompleted() exits early if it doesn't
see RWH-specific latency components. However it should prove useful for getting
latency data for non-blink use cases in the future.

Other changes:
- Adds logging of DISPLAY_COMPOSITOR_RECEIVED_FRAME_COMPONENT in
  SurfaceFactory::SubmitCompositorFrame().
- Plumbs through LatencyInfo propagation for the in-process GPU
  command buffer case (i.e. for Mus GPU).
- Adds LatencyTracker to DisplayOutputSurface, and calls
  LatencyTracker::OnGpuSwapBuffersCompleted from
  DisplayOutputSurface::OnGpuSwapBuffersCompleted, which ensures UMA latency
  data is reported in Mus.

TBR=bbudge@chromium.org,danakj@chromium.org
BUG=686865

CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel

Review-Url: https://codereview.chromium.org/2806163004
Cr-Original-Commit-Position: refs/heads/master@{#464664}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 426ea5dd2cf7061a7860a34d502f2c191a343a8e
2 files changed