dawn::native: Implement wgslLanguageFeatures.

Adds support for Instance::HasWGSLLanguageFeature and
Instance::EnumerateWGSLLanguageFeatures based on the data provided by
Tint in src/tint/lang/wgsl/features/status.h. A toggle is added to (by
default) hide the "chromium_testing_*" language features.

Use these testing features in a unittests.

Make the device use the instance's list of enabled language features to
pass the AllowedWGSLFeatures to Tint's WGSL reader.

Bug: dawn:2260
Change-Id: Ia6de5f9daf7d5a4f04c017624c32cf149382c6be
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/162500
Reviewed-by: Ben Clayton <bclayton@google.com>
Reviewed-by: Austin Eng <enga@chromium.org>
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
diff --git a/generator/dawn_json_generator.py b/generator/dawn_json_generator.py
index 8f9ad3c..f9c900c 100644
--- a/generator/dawn_json_generator.py
+++ b/generator/dawn_json_generator.py
@@ -63,7 +63,7 @@
         return chunk[0].upper() + chunk[1:]
 
     def canonical_case(self):
-        return (' '.join(self.chunks)).lower()
+        return ' '.join(self.chunks)
 
     def concatcase(self):
         return ''.join(self.chunks)