Reland "Populate secondary GPU info after GPU switch on Mac."

This is a reland of 07bb169ae71e033a0c6a0cfc86956b81f32641d8
This CL moves CollectGraphicsInfoGL and DidUpdateGPUInfo calls
onto the main thread, and creates a helper function
GpuServiceImpl::UpdateGpuInfoGL to do so.

Original change's description:
> Populate secondary GPU info after GPU switch on Mac.
>
> The secondary GPU was not populated with information taken from GL
> strings after a GPU switch. This CL addresses this by re-querying
> this information each time the GPU is switched.
> The active GPU in dual-GPU systems is now computed in the GPU
> process and communicated back to the browser process. The
> heuristic GpuDataManagerImpl::UpdateActiveGpu has been removed.
>
> Bug: chromium:1152212
> Change-Id: Ie54dd5dc06c3d0a1c5f0445cc0f313adc8fa24cf
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2560552
> Reviewed-by: Jonathan Backer <[email protected]>
> Reviewed-by: Joe Mason <[email protected]>
> Reviewed-by: Kenneth Russell <[email protected]>
> Commit-Queue: Jonah Ryan-Davis <[email protected]>
> Cr-Commit-Position: refs/heads/master@{#832610}

Bug: chromium:1152212
Bug: chromium:1154752
Change-Id: I981fcabe87d651310ba27b42a0f1e926af67cb2a
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2569953
Commit-Queue: Jonah Ryan-Davis <[email protected]>
Reviewed-by: Joe Mason <[email protected]>
Reviewed-by: Jonathan Backer <[email protected]>
Reviewed-by: Kenneth Russell <[email protected]>
Cr-Commit-Position: refs/heads/master@{#834743}
diff --git a/components/viz/host/gpu_host_impl.h b/components/viz/host/gpu_host_impl.h
index e131324..08dac278 100644
--- a/components/viz/host/gpu_host_impl.h
+++ b/components/viz/host/gpu_host_impl.h
@@ -71,6 +71,7 @@
     virtual void DidFailInitialize() = 0;
     virtual void DidCreateContextSuccessfully() = 0;
     virtual void MaybeShutdownGpuProcess() = 0;
+    virtual void DidUpdateGPUInfo(const gpu::GPUInfo& gpu_info) = 0;
 #if defined(OS_WIN)
     virtual void DidUpdateOverlayInfo(const gpu::OverlayInfo& overlay_info) = 0;
     virtual void DidUpdateHDRStatus(bool hdr_enabled) = 0;
@@ -225,6 +226,7 @@
                       gpu::error::ContextLostReason reason,
                       const GURL& active_url) override;
   void DisableGpuCompositing() override;
+  void DidUpdateGPUInfo(const gpu::GPUInfo& gpu_info) override;
 #if defined(OS_WIN)
   void DidUpdateOverlayInfo(const gpu::OverlayInfo& overlay_info) override;
   void DidUpdateHDRStatus(bool hdr_enabled) override;