vulkan: rework {Create,Destroy}Device_Bottom

The reworked driver::CreateDevice will

 - use the providied pAllocator,
 - call HAL's EnumerateDeviceExtensionProperties 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.

Change-Id: I3ba4019d18dfed994d7037d95825bf54096f2a5d
diff --git a/vulkan/libvulkan/driver_gen.cpp b/vulkan/libvulkan/driver_gen.cpp
index dd203c7..81299fc 100644
--- a/vulkan/libvulkan/driver_gen.cpp
+++ b/vulkan/libvulkan/driver_gen.cpp
@@ -164,7 +164,7 @@
         "vkCreateDevice",
         ProcHook::INSTANCE,
         ProcHook::EXTENSION_CORE,
-        reinterpret_cast<PFN_vkVoidFunction>(CreateDevice_Bottom),
+        reinterpret_cast<PFN_vkVoidFunction>(CreateDevice),
         nullptr,
         nullptr,
     },
@@ -204,7 +204,7 @@
         "vkDestroyDevice",
         ProcHook::DEVICE,
         ProcHook::EXTENSION_CORE,
-        reinterpret_cast<PFN_vkVoidFunction>(DestroyDevice_Bottom),
+        reinterpret_cast<PFN_vkVoidFunction>(DestroyDevice),
         nullptr,
         nullptr,
     },
@@ -397,6 +397,7 @@
     INIT_PROC(instance, EnumeratePhysicalDevices);
     INIT_PROC(instance, GetInstanceProcAddr);
     INIT_PROC(instance, CreateDevice);
+    INIT_PROC(instance, EnumerateDeviceLayerProperties);
     INIT_PROC(instance, EnumerateDeviceExtensionProperties);
     INIT_PROC_EXT(EXT_debug_report, instance, CreateDebugReportCallbackEXT);
     INIT_PROC_EXT(EXT_debug_report, instance, DestroyDebugReportCallbackEXT);