Add support for GL_NV_shader_sm_builtins

Including spirv and AST tests

Also increase size of TBuiltInVariable bitfields since we've now exceeded 127
and add a static_assert to make this easier to find next time it happens!
diff --git a/Test/glsl.460.subgroup.rahit b/Test/glsl.460.subgroup.rahit
index 3ee7378..a1bce28 100644
--- a/Test/glsl.460.subgroup.rahit
+++ b/Test/glsl.460.subgroup.rahit
@@ -253,3 +253,23 @@
   subgroupPartitionedExclusiveXorNV(ballot, parti);
 }
 
+// tests for NV_shader_sm_builtins
+void sm_builtins_err()
+{
+    gl_WarpsPerSMNV;    // ERROR, no extension
+    gl_SMCountNV;       // ERROR, no extension
+    gl_WarpIDNV;        // ERROR, no extension
+    gl_SMIDNV;          // ERROR, no extension
+}
+
+#ifdef GL_NV_shader_sm_builtins
+#extension GL_NV_shader_sm_builtins : enable
+#endif
+
+void sm_builtins()
+{
+    gl_WarpsPerSMNV;
+    gl_SMCountNV;
+    gl_WarpIDNV;
+    gl_SMIDNV;
+}