header: Update to Vulkan version 1.0.37

- header:  Updated vulkan.h
- scripts: Updated generator.py
- scripts: Updated vk.xml
- scripts: Merged recent genvk.py changes into lvl_genvk.py
- layers:  Updated json files
- loader:  Updated SOVERSION to 37
- header:  Rebuilt and updated vulkan.hpp
- layers:  Updated thread_checker for new functions
- scripts: Fix up vk_helper.py overzealous count detection

Change-Id: Ia10f5fc759166a09999f01e68bbcadb30ddf67f7
diff --git a/scripts/lvl_genvk.py b/scripts/lvl_genvk.py
index 63b8bab..07a7bcd 100644
--- a/scripts/lvl_genvk.py
+++ b/scripts/lvl_genvk.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/python3
 #
 # Copyright (c) 2013-2016 The Khronos Group Inc.
 #
@@ -50,7 +50,7 @@
 # extensions - list of extension names to include.
 # protect - True if re-inclusion protection should be added to headers
 # directory - path to directory in which to generate the target(s)
-def makeGenOpts(extensions = [], protect = True, directory = '.'):
+def makeGenOpts(extensions = [], removeExtensions = [], protect = True, directory = '.'):
     global genOpts
     genOpts = {}
 
@@ -60,7 +60,7 @@
     noVersions      = noExtensions = None
 
     addExtensions     = makeREstring(extensions)
-    removeExtensions  = makeREstring([])
+    removeExtensions  = makeREstring(removeExtensions)
 
     # Copyright text prefixing all headers (list of strings).
     prefixStrings = [
@@ -199,6 +199,7 @@
 
     # Create generator options with specified parameters
     makeGenOpts(extensions = args.extension,
+                removeExtensions = args.removeExtension,
                 protect = args.protect,
                 directory = args.directory)
 
@@ -228,6 +229,9 @@
     parser.add_argument('-extension', action='append',
                         default=[],
                         help='Specify an extension or extensions to add to targets')
+    parser.add_argument('-removeExtension', action='append',
+                        default=[],
+                        help='Specify an extension or extensions to remove from targets')
     parser.add_argument('-debug', action='store_true',
                         help='Enable debugging')
     parser.add_argument('-dump', action='store_true',
@@ -276,16 +280,16 @@
 
     if (args.dump):
         write('* Dumping registry to regdump.txt', file=sys.stderr)
-        reg.dumpReg(filehandle = open('regdump.txt','w'))
+        reg.dumpReg(filehandle = open('regdump.txt','w', encoding='utf-8'))
 
     # create error/warning & diagnostic files
     if (args.errfile):
-        errWarn = open(args.errfile, 'w')
+        errWarn = open(args.errfile, 'w', encoding='utf-8')
     else:
         errWarn = sys.stderr
 
     if (args.diagfile):
-        diag = open(args.diagfile, 'w')
+        diag = open(args.diagfile, 'w', encoding='utf-8')
     else:
         diag = None