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/fence.c b/icd/intel/fence.c
index af889be..9012fba 100644
--- a/icd/intel/fence.c
+++ b/icd/intel/fence.c
@@ -30,6 +30,7 @@
 #include "dev.h"
 #include "wsi.h"
 #include "fence.h"
+#include "instance.h"
 
 static void fence_destroy(struct intel_obj *obj)
 {
@@ -49,7 +50,7 @@
     if (!fence)
         return VK_ERROR_OUT_OF_HOST_MEMORY;
 
-    if (dev->global_exts[INTEL_GLOBAL_EXT_WSI_LUNARG]) {
+    if (dev->base.handle.instance->global_exts[INTEL_GLOBAL_EXT_WSI_LUNARG]) {
         VkResult ret = intel_wsi_fence_init(fence);
         if (ret != VK_SUCCESS) {
             intel_fence_destroy(fence);