vk-layer-generate.py: no interface functions in layer functions

Move handling of interface functions out of layers' GetInstanceProcAddr to
v0's vkGetInstanceProcAddr.
diff --git a/vk-layer-generate.py b/vk-layer-generate.py
index 3d45a69..7d7257b 100755
--- a/vk-layer-generate.py
+++ b/vk-layer-generate.py
@@ -428,6 +428,15 @@
         body.append('')
         body.append('VK_LAYER_EXPORT VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vkGetInstanceProcAddr(VkInstance instance, const char *funcName)')
         body.append('{')
+        body.append('    if (!strcmp(funcName, "vkEnumerateInstanceLayerProperties"))')
+        body.append('        return reinterpret_cast<PFN_vkVoidFunction>(vkEnumerateInstanceLayerProperties);')
+        body.append('    if (!strcmp(funcName, "vkEnumerateDeviceLayerProperties"))')
+        body.append('        return reinterpret_cast<PFN_vkVoidFunction>(vkEnumerateDeviceLayerProperties);')
+        body.append('    if (!strcmp(funcName, "vkEnumerateInstanceExtensionProperties"))')
+        body.append('        return reinterpret_cast<PFN_vkVoidFunction>(vkEnumerateInstanceExtensionProperties);')
+        body.append('    if (!strcmp(funcName, "vkGetInstanceProcAddr"))')
+        body.append('        return reinterpret_cast<PFN_vkVoidFunction>(vkGetInstanceProcAddr);')
+        body.append('')
         body.append('    return %s::vkGetInstanceProcAddr(instance, funcName);' % self.layer_name)
         body.append('}')
 
@@ -440,11 +449,13 @@
         funcs = []
         intercepted = []
         for proto in self.protos:
-            if proto.name in ["GetDeviceProcAddr",
-                              "GetInstanceProcAddr",
-                              "EnumerateInstanceExtensionProperties",
+            if proto.name in ["EnumerateInstanceExtensionProperties",
                               "EnumerateInstanceLayerProperties",
                               "EnumerateDeviceLayerProperties"]:
+                # the layer do not need to define these
+                continue
+            elif proto.name in ["GetDeviceProcAddr",
+                                "GetInstanceProcAddr"]:
                 intercepted.append(proto)
             else:
                 intercept = self.generate_intercept(proto, qual)
@@ -492,6 +503,11 @@
         body.append("{")
         body.append(generate_get_proc_addr_check("name"))
         body.append("")
+        body.append("    // we should never be queried for these commands")
+        body.append("    assert(strcmp(name, \"vkEnumerateInstanceLayerProperties\") &&")
+        body.append("           strcmp(name, \"vkEnumerateInstanceExtensionProperties\") &&")
+        body.append("           strcmp(name, \"vkEnumerateDeviceLayerProperties\"));")
+        body.append("")
         body.append("    name += 2;")
         body.append("    %s" % "\n    ".join(instance_lookups))
         body.append("")