header: Update to Vulkan version 1.0.38

- 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 38
- header:  Updated vulkan.hpp

Change-Id: Id0f83c248169bd8b1e03a14c90a5f9b1661cfcc7
diff --git a/scripts/generator.py b/scripts/generator.py
index 3c5cc0a..680cd6a 100755
--- a/scripts/generator.py
+++ b/scripts/generator.py
@@ -14,12 +14,12 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-import os,re,sys
+import io,os,re,sys
 
 def write( *args, **kwargs ):
-    file = kwargs.pop('file',sys.stdout)
-    end = kwargs.pop( 'end','\n')
-    file.write( ' '.join([str(arg) for arg in args]) )
+    file = kwargs.pop(u'file',sys.stdout)
+    end = kwargs.pop( u'end',u'\n')
+    file.write( u' '.join([str(arg) for arg in args]) )
     file.write( end )
 
 # noneStr - returns string argument, or "" if argument is None.
@@ -319,7 +319,7 @@
         # Generator can be used without writing to a file.
         if (self.genOpts.filename != None):
             filename = self.genOpts.directory + '/' + self.genOpts.filename
-            self.outFile = open(filename, 'w', encoding='utf-8')
+            self.outFile = io.open(filename, 'w', encoding='utf-8')
         else:
             self.outFile = sys.stdout
     def endFile(self):