Refactored VRService interaction and added VRServiceClient

Lots of cleanup and architectural improvements. Allows bi-directional
communication, which will be needed when we start adding VR events. Also
refactors the relationship between the VRService and VRDeviceManager
(splits them apart) for cleaner connection handling and removed
WebLocalFrameImpl dependency on VRController.

BUG=389343
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_site_isolation

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