intel: Separate extensions into global and device

To support splitting extensions into global and physical
device extensions need to keep some enable information
at the instance level. The intel_instance is a logical
place for that but is not accessible from all objects.
This patch replaces the icd pointer in intel_handle
with an instance pointer so that we can find the global
extension enable flags.
diff --git a/icd/intel/intel.h b/icd/intel/intel.h
index 4a5829a..605004c 100644
--- a/icd/intel/intel.h
+++ b/icd/intel/intel.h
@@ -37,8 +37,6 @@
 #include <assert.h>
 
 #include <vulkan.h>
-#include <vk_debug_report_lunarg.h>
-#include <vk_wsi_lunarg.h>
 #include <vkIcd.h>
 
 #include "icd.h"
@@ -71,12 +69,14 @@
     INTEL_DEBUG_HANG        = 1 << 23,
 };
 
+struct intel_instance;
+
 struct intel_handle {
     /* the loader expects a "void *" at the beginning */
     void *loader_data;
 
     uint32_t magic;
-    const struct icd_instance *icd;
+    const struct intel_instance *instance;
 };
 
 extern int intel_debug;
@@ -85,12 +85,12 @@
 
 static inline void intel_handle_init(struct intel_handle *handle,
                                      VkObjectType type,
-                                     const struct icd_instance *icd)
+                                     const struct intel_instance *instance)
 {
     set_loader_magic_value((VkObject) handle);
 
     handle->magic = intel_handle_magic + type;
-    handle->icd = icd;
+    handle->instance = instance;
 }
 
 /**