intel: remove unused internal dispatch tables

Remove intel_dispatch_get() and the two dispatch tables.  Embed

  void *loader_data;

instead of

  const XGL_LAYER_DISPATCH_TABLE *dispatch;

at the beginning of intel_gpu and intel_base, as that is what the loader
really wants.

Add a magic to intel_base to keep intel_base_is_valid() working.

v2: do not set loader_data of new objects
diff --git a/icd/intel/obj.h b/icd/intel/obj.h
index 28f0c41..fe0e474 100644
--- a/icd/intel/obj.h
+++ b/icd/intel/obj.h
@@ -51,7 +51,9 @@
 };
 
 struct intel_base {
-    const XGL_LAYER_DISPATCH_TABLE *dispatch;
+    /* the loader expects a "void *" at the beginning */
+    void *loader_data;
+    uint32_t magic;
 
     struct intel_base_dbg *dbg;
 
@@ -87,7 +89,8 @@
     obj->offset = offset;
 }
 
-bool intel_base_is_valid(const struct intel_base *base);
+bool intel_base_is_valid(const struct intel_base *base,
+                         XGL_DBG_OBJECT_TYPE type);
 
 XGL_RESULT intel_base_get_info(struct intel_base *base, int type,
                                XGL_SIZE *size, XGL_VOID *data);