build: Update known good for 1.1.106 header

Changes:
- Integrate upstream script changes: We have to plumb-through the new
conventions object to continue using the makeCParamDecl utility function
- Add `ggp` to platform dictionary
- Workaround for missing platform guard: The XML definition of
VK_KHR_device_group has a single command
vkGetDeviceGroupsSurfacePresentModes2EXT which needs a platform guard.
The current code gen can't guard a subset of an extension so this
workaround manually defines the function with the guard.  A more robust
solution to follow.
- Update validation error messages and related files
- Update known good files

Updated:
- `build-android/known_good.json`
- `layers/buffer_validation.cpp`
- `layers/parameter_validation_utils.cpp`
- `layers/stateless_validation.h`
- `layers/vk_validation_error_messages.h`
- `scripts/common_codegen.py`
- `scripts/dispatch_table_helper_generator.py`
- `scripts/helper_file_generator.py`
- `scripts/known_good.json`
- `scripts/layer_chassis_dispatch_generator.py`
- `scripts/layer_chassis_generator.py`
- `scripts/layer_dispatch_table_generator.py`
- `scripts/lvl_genvk.py`
- `scripts/object_tracker_generator.py`
- `scripts/parameter_validation_generator.py`
- `scripts/thread_safety_generator.py`
- `tests/layer_validation_tests.cpp`

Change-Id: I4d67d3e4993d04aa0cb3d5f427da130c82281749
diff --git a/scripts/parameter_validation_generator.py b/scripts/parameter_validation_generator.py
index 173d8be..e11f8f7 100644
--- a/scripts/parameter_validation_generator.py
+++ b/scripts/parameter_validation_generator.py
@@ -64,6 +64,7 @@
 #     separate line, align parameter names at the specified column
 class ParameterValidationGeneratorOptions(GeneratorOptions):
     def __init__(self,
+                 conventions = None,
                  filename = None,
                  directory = '.',
                  apiname = None,
@@ -84,7 +85,7 @@
                  alignFuncParam = 0,
                  expandEnumerants = True,
                  valid_usage_path = ''):
-        GeneratorOptions.__init__(self, filename, directory, apiname, profile,
+        GeneratorOptions.__init__(self, conventions, filename, directory, apiname, profile,
                                   versions, emitversions, defaultExtensions,
                                   addExtensions, removeExtensions, emitExtensions, sortProcedure)
         self.prefixText      = prefixText
@@ -186,6 +187,7 @@
             'vkEnumerateInstanceExtensionProperties',
             'vkEnumerateDeviceLayerProperties',
             'vkEnumerateDeviceExtensionProperties',
+            'vkGetDeviceGroupSurfacePresentModes2EXT'
             ]
 
         # Structure fields to ignore
@@ -593,12 +595,18 @@
             if isEnum:
                 self.enumRanges[groupName] = (expandPrefix + '_BEGIN_RANGE' + expandSuffix, expandPrefix + '_END_RANGE' + expandSuffix)
                 # Create definition for a list containing valid enum values for this enumerated type
-                enum_entry = 'const std::vector<%s> All%sEnums = {' % (groupName, groupName)
+                if self.featureExtraProtect is not None:
+                    enum_entry = '\n#ifdef %s\n' % self.featureExtraProtect
+                else:
+                    enum_entry = ''
+                enum_entry += 'const std::vector<%s> All%sEnums = {' % (groupName, groupName)
                 for enum in groupElem:
                     name = enum.get('name')
                     if name is not None and enum.get('supported') != 'disabled':
                         enum_entry += '%s, ' % name
                 enum_entry += '};\n'
+                if self.featureExtraProtect is not None:
+                    enum_entry += '#endif // %s' % self.featureExtraProtect
                 self.enumValueLists += enum_entry
     #
     # Capture command parameter info to be used for param check code generation.