Introduce the webgpu[_cpp].h headers.

webgpu.h is the "official" header for WebGPU in native and is being
developed in https://github.com/webgpu-native/webgpu-headers

dawn.h and dawncpp.h are changed to become webgpu.h and webgpu_cpp.h
respectively and use the new naming convention. New dawn.h and dawncpp.h
headers are created that just proxy the types, constants and functions
to their WebGPU counterpart.

Almost no naming change is done in Dawn in this commit, which help check
that the proxying headers work correctly. A couple changes were
necessary, in particular for tests of the internal of dawncpp.h, and a
workaround for a standard library bug for std::underlying_type was
removed because it is no longer needed and got in the way.

Finally since some templates were renamed to match the name of the file
they create instead of using the generic "api" name.

BUG=dawn:22

Change-Id: I12ee22d0b02ccb5b8a52ceccabb3e63ce74da007
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/12480
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
diff --git a/src/tests/unittests/ObjectBaseTests.cpp b/src/tests/unittests/ObjectBaseTests.cpp
index b42920f..376d004 100644
--- a/src/tests/unittests/ObjectBaseTests.cpp
+++ b/src/tests/unittests/ObjectBaseTests.cpp
@@ -16,19 +16,19 @@
 
 #include "dawn/dawncpp.h"
 
-class Object : public dawn::ObjectBase<Object, int*> {
-    public:
-        using ObjectBase::ObjectBase;
-        using ObjectBase::operator=;
+class Object : public wgpu::ObjectBase<Object, int*> {
+  public:
+    using ObjectBase::ObjectBase;
+    using ObjectBase::operator=;
 
-        static void DawnReference(int* handle) {
-            ASSERT_LE(0, *handle);
-            *handle += 1;
-        }
-        static void DawnRelease(int* handle) {
-            ASSERT_LT(0, *handle);
-            *handle -= 1;
-        }
+    static void WGPUReference(int* handle) {
+        ASSERT_LE(0, *handle);
+        *handle += 1;
+    }
+    static void WGPURelease(int* handle) {
+        ASSERT_LT(0, *handle);
+        *handle -= 1;
+    }
 };
 
 // Test that creating an C++ object from a C object takes a ref.