Changed GpuVSyncProvider to implement gfx::VSyncProvider

GpuVSyncProvider was introduced recently to generate D3D VSync
signals in the GPU process. This change makes GpuVSyncProvider an actual VSync provider that derives from gfx::VSyncProvider.
The class name is also changed to GpuVSyncProviderWin.

This will make it easy to integrate GpuVSyncProviderWin into
existing code by replacing the current version of the provider with
this new one without having to change much of the existing code.

GpuVSyncProviderWin ignores the existing mechanism for requesting
VSync parameter updates and instead uses IPC::MessageFilter to
send and receive VSync related IPC messages directly. That bypasses
the main GPU thread and should allow us to achieve the best possible
latency.

BUG=467617
CQ_INCLUDE_TRYBOTS=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/2681033011
Cr-Commit-Position: refs/heads/master@{#450784}
13 files changed