Add DawnControlClientHolder to track Dawn client state

WebGPU objects will be backed by Dawn objects. If the Dawn client is
destroyed, Dawn objects are destroyed by the Dawn Wire.
The Blink WebGPU objects need to know if the client is destroyed
so that they do not call the destructors and double-free Dawn handles.

Bug: 941536
Change-Id: I288ec5c55a29ae135c4ec0b202bdd7d61e781d57
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1519552
Commit-Queue: Austin Eng <enga@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
Cr-Commit-Position: refs/heads/master@{#641125}
11 files changed