VR: Allow VRDeviceProviders to initialize asynchronously

Also implements adding and removing of devices after initialization.

Bug: 695937
Cq-Include-Trybots: 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
Change-Id: I70ff4085242720f135da3d3cd51dd99dcbd7492c
Reviewed-on: https://chromium-review.googlesource.com/789652
Commit-Queue: Michael Thiessen <mthiesse@chromium.org>
Reviewed-by: Brandon Jones <bajones@chromium.org>
Reviewed-by: Bill Orr <billorr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#520208}
12 files changed