libvulkan: Fix dEQP-VK.api.device_init.create_instance_unsupported_extensions

The existing check was only executed if the driver reported at least
one instance extension, because it was part of filtering the extension
list down to just the ones supported by the driver. Now do it
separately, and before we do anything else.

Also changed the null driver to not report any extensions; reporting
an extension masked the bug for me when I ran this test before.

Change-Id: I2b62229c6acbc9406c036f1f1b766a21c03922d4
(cherry picked from commit 1f7e9e0e771ac4045c5f669290dc01b01dd01342)
diff --git a/vulkan/nulldrv/null_driver.cpp b/vulkan/nulldrv/null_driver.cpp
index e12409c..b4e21db 100644
--- a/vulkan/nulldrv/null_driver.cpp
+++ b/vulkan/nulldrv/null_driver.cpp
@@ -214,10 +214,15 @@
             "Driver vkEnumerateInstanceExtensionProperties shouldn't be called "
             "with a layer name ('%s')",
             layer_name);
-        *count = 0;
-        return VK_SUCCESS;
     }
 
+// NOTE: Change this to zero to report and extension, which can be useful
+// for testing changes to the loader.
+#if 1
+    (void)properties;  // unused
+    *count = 0;
+    return VK_SUCCESS;
+#else
     const VkExtensionProperties kExtensions[] = {
         {VK_EXT_DEBUG_REPORT_EXTENSION_NAME, VK_EXT_DEBUG_REPORT_SPEC_VERSION}};
     const uint32_t kExtensionsCount =
@@ -228,6 +233,7 @@
     if (properties)
         std::copy(kExtensions, kExtensions + *count, properties);
     return *count < kExtensionsCount ? VK_INCOMPLETE : VK_SUCCESS;
+#endif
 }
 
 VKAPI_ATTR