intel: make intel_ir opaque

It is just gl_shader_program in the end, and we want gl_shader_program to be
opaque.  This also forces the driver to correctly use intel_pipeline_shader
instead of intel_ir.

With the change, xglCreateShader() now asks the compiler to compile BIL into
intel_ir.  Later when the pipeline is created, the intel_ir is passed to the
compiler again to generate the binary kernel as well as metadata.
diff --git a/icd/intel/pipeline.h b/icd/intel/pipeline.h
index 93cb928..f931661 100644
--- a/icd/intel/pipeline.h
+++ b/icd/intel/pipeline.h
@@ -33,6 +33,16 @@
 #include "obj.h"
 #include "dev.h"
 
+enum intel_pipeline_shader_use {
+    INTEL_SHADER_USE_VID                = (1 << 0),
+    INTEL_SHADER_USE_IID                = (1 << 1),
+
+    INTEL_SHADER_USE_KILL               = (1 << 2),
+    INTEL_SHADER_USE_COMPUTED_DEPTH     = (1 << 3),
+    INTEL_SHADER_USE_DEPTH              = (1 << 4),
+    INTEL_SHADER_USE_W                  = (1 << 5),
+};
+
 #define INTEL_PIPELINE_RMAP_SLOT_RT ((XGL_UINT) -1)
 #define INTEL_PIPELINE_RMAP_SLOT_DYN ((XGL_UINT) -2)
 struct intel_pipeline_rmap_slot {