vulkan: rework CreateInstance_Bottom and related ones

The reworked driver::CreateInstance will

 - call HAL's EnumerateInstanceExtensionProperties and filter out
   extensions unknown to HAL, if there is any extension enabled.

We do not expect or enumerate any HAL layer yet as that requires some
works to layers_extensions.cpp.

The reworked driver::EnumerateInstanceExtensionProperties instead will
return all extensions enumerated by HAL, after prepending VK_KHR_surface
and VK_KHR_android_surface to them.  This allows extensions unknown to the
loader to be enumerated.

Change-Id: I73b496582a773e06c7b79f0c5c166700737f2953
diff --git a/vulkan/libvulkan/driver_gen.cpp b/vulkan/libvulkan/driver_gen.cpp
index e88299d..a991f85 100644
--- a/vulkan/libvulkan/driver_gen.cpp
+++ b/vulkan/libvulkan/driver_gen.cpp
@@ -172,7 +172,7 @@
         "vkCreateInstance",
         ProcHook::GLOBAL,
         ProcHook::EXTENSION_CORE,
-        reinterpret_cast<PFN_vkVoidFunction>(CreateInstance_Bottom),
+        reinterpret_cast<PFN_vkVoidFunction>(CreateInstance),
         nullptr,
         nullptr,
     },
@@ -212,7 +212,7 @@
         "vkDestroyInstance",
         ProcHook::INSTANCE,
         ProcHook::EXTENSION_CORE,
-        reinterpret_cast<PFN_vkVoidFunction>(DestroyInstance_Bottom),
+        reinterpret_cast<PFN_vkVoidFunction>(DestroyInstance),
         nullptr,
         nullptr,
     },
@@ -252,7 +252,7 @@
         "vkEnumeratePhysicalDevices",
         ProcHook::INSTANCE,
         ProcHook::EXTENSION_CORE,
-        reinterpret_cast<PFN_vkVoidFunction>(EnumeratePhysicalDevices_Bottom),
+        reinterpret_cast<PFN_vkVoidFunction>(EnumeratePhysicalDevices),
         nullptr,
         nullptr,
     },