Autogenerate Features mappings

Makes it much easier to add new features.
A few minor changes:
 - names are changed from hyphen-case to snake_case
 - make the features set a typed bitset

Change-Id: Ia5fff4c96421878952d676c56ab42c8719b27478
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/147820
Reviewed-by: Loko Kung <lokokung@google.com>
Auto-Submit: Austin Eng <enga@chromium.org>
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Austin Eng <enga@chromium.org>
diff --git a/generator/dawn_json_generator.py b/generator/dawn_json_generator.py
index 1ebf88b..e33e73b 100644
--- a/generator/dawn_json_generator.py
+++ b/generator/dawn_json_generator.py
@@ -1116,6 +1116,14 @@
                            'src/' + native_dir + '/ChainUtils_autogen.cpp',
                            frontend_params))
             renders.append(
+                FileRender('dawn/native/Features.h',
+                           'src/' + native_dir + '/Features_autogen.h',
+                           frontend_params))
+            renders.append(
+                FileRender('dawn/native/Features.inl',
+                           'src/' + native_dir + '/Features_autogen.inl',
+                           frontend_params))
+            renders.append(
                 FileRender('dawn/native/api_absl_format.h',
                            'src/' + native_dir + '/' + api + '_absl_format_autogen.h',
                            frontend_params))