scripts: Make codegen deterministic

Sort any containers with undefined ordering before using them to
generate code.  It will be critical to generate identical output
everywhere before we can turn on CI to check if committed scripts match
committed output.

Change-Id: I04f47e934ae293a4ff6b95e373df64b3ec1b9b0d
diff --git a/scripts/helper_file_generator.py b/scripts/helper_file_generator.py
index 4e2aa47..2a8c2fd 100644
--- a/scripts/helper_file_generator.py
+++ b/scripts/helper_file_generator.py
@@ -815,12 +815,12 @@
                                                   vko_type='VK_OBJECT_TYPE_UNKNOWN') + '\n'
         object_types_header += '#endif //  VK_DEFINE_HANDLE logic duplication\n'
 
-        for vk_type, object_type in dispatchable.items():
+        for vk_type, object_type in sorted(dispatchable.items()):
             info = object_type_info[object_type]
             object_types_header += traits_format.format(vk_type=vk_type, obj_type=object_type, dbg_type=info['DbgType'],
                                                       vko_type=info['VkoType'])
         object_types_header += '#ifdef TYPESAFE_NONDISPATCHABLE_HANDLES\n'
-        for vk_type, object_type in non_dispatchable.items():
+        for vk_type, object_type in sorted(non_dispatchable.items()):
             info = object_type_info[object_type]
             object_types_header += traits_format.format(vk_type=vk_type, obj_type=object_type, dbg_type=info['DbgType'],
                                                       vko_type=info['VkoType'])
diff --git a/scripts/thread_safety_generator.py b/scripts/thread_safety_generator.py
index 54cef56..8e19ee6 100644
--- a/scripts/thread_safety_generator.py
+++ b/scripts/thread_safety_generator.py
@@ -829,7 +829,7 @@
         counter_class_instances = ''
         counter_class_bodies = ''
 
-        for obj in self.non_dispatchable_types:
+        for obj in sorted(self.non_dispatchable_types):
             counter_class_defs += '    counter<%s> c_%s;\n' % (obj, obj)
             if obj in self.object_to_debug_report_type:
                 obj_type = self.object_to_debug_report_type[obj]
diff --git a/scripts/vk_validation_stats.py b/scripts/vk_validation_stats.py
index a043586..ca6dbf1 100755
--- a/scripts/vk_validation_stats.py
+++ b/scripts/vk_validation_stats.py
@@ -622,7 +622,7 @@
             cmd_enum = ['    ' + cmd_prefix + 'NONE = 0']
 
             cmd_ordinal = 1
-            for vuid, db_text in cmd_dict.items():
+            for vuid, db_text in sorted(cmd_dict.items()):
                 cmd_match = cmd_regex.match(vuid)
                 if cmd_match.group(1) == "End":
                     end = "END"