xgl: Resource transition proposal from Bug 12904.

Added resource transition proposal from Bug 12904.
Updated function prototypes.
Added XGL_IMAGE_CREATE_MUTABLE_FORMAT_BIT based on Intel's request.
Unless this flag is specified, image views created from the image must match the base format.
xgl.py: changes for resource tracking
loader: changes for resource tracking
icd: changes for resource tracking
tests: changes for resource tracking
demos: changes for resource tracking
diff --git a/tests/xglrenderframework.h b/tests/xglrenderframework.h
index 13f1eb7..140a72b 100644
--- a/tests/xglrenderframework.h
+++ b/tests/xglrenderframework.h
@@ -115,7 +115,7 @@
     XGL_RESULT BeginCommandBuffer(XGL_RENDER_PASS renderpass_obj);
     XGL_RESULT BeginCommandBuffer();
     XGL_RESULT EndCommandBuffer();
-    void PrepareBufferRegions(int transitionCount, XGL_BUFFER_STATE_TRANSITION *transitionPtr);
+    void PipelineBarrier(XGL_PIPELINE_BARRIER *barrierPtr);
     void AddRenderTarget(XglImage *renderTarget);
     void AddDepthStencil();
     void ClearAllBuffers();
@@ -142,7 +142,24 @@
 public:
     XglConstantBufferObj(XglDevice *device);
     XglConstantBufferObj(XglDevice *device, int constantCount, int constantSize, const void* data);
-    void SetBufferState(XGL_BUFFER_STATE newState);
+    void BufferMemoryBarrier(
+        XGL_FLAGS outputMask =
+            XGL_MEMORY_OUTPUT_CPU_WRITE_BIT |
+            XGL_MEMORY_OUTPUT_SHADER_WRITE_BIT |
+            XGL_MEMORY_OUTPUT_COLOR_ATTACHMENT_BIT |
+            XGL_MEMORY_OUTPUT_DEPTH_STENCIL_ATTACHMENT_BIT |
+            XGL_MEMORY_OUTPUT_COPY_BIT,
+        XGL_FLAGS inputMask =
+            XGL_MEMORY_INPUT_CPU_READ_BIT |
+            XGL_MEMORY_INPUT_INDIRECT_COMMAND_BIT |
+            XGL_MEMORY_INPUT_INDEX_FETCH_BIT |
+            XGL_MEMORY_INPUT_VERTEX_ATTRIBUTE_FETCH_BIT |
+            XGL_MEMORY_INPUT_UNIFORM_READ_BIT |
+            XGL_MEMORY_INPUT_SHADER_READ_BIT |
+            XGL_MEMORY_INPUT_COLOR_ATTACHMENT_BIT |
+            XGL_MEMORY_INPUT_DEPTH_STENCIL_ATTACHMENT_BIT |
+            XGL_MEMORY_INPUT_COPY_BIT);
+
     void Bind(XGL_CMD_BUFFER cmdBuffer, XGL_GPU_SIZE offset, XGL_UINT binding);
 
     XGL_BUFFER_VIEW_ATTACH_INFO     m_bufferViewInfo;
@@ -173,14 +190,6 @@
 public:
     XglImage(XglDevice *dev);
 
-    // Image usage flags
-    //    typedef enum _XGL_IMAGE_USAGE_FLAGS
-    //    {
-    //        XGL_IMAGE_USAGE_SHADER_ACCESS_READ_BIT                  = 0x00000001,
-    //        XGL_IMAGE_USAGE_SHADER_ACCESS_WRITE_BIT                 = 0x00000002,
-    //        XGL_IMAGE_USAGE_COLOR_ATTACHMENT_BIT                    = 0x00000004,
-    //        XGL_IMAGE_USAGE_DEPTH_STENCIL_BIT                       = 0x00000008,
-    //    } XGL_IMAGE_USAGE_FLAGS;
 public:
     void init( XGL_UINT32 w, XGL_UINT32 h,
                      XGL_FORMAT fmt, XGL_FLAGS usage,
@@ -189,9 +198,9 @@
     //    void clear( CommandBuffer*, XGL_UINT[4] );
     //    void prepare( CommandBuffer*, XGL_IMAGE_STATE );
 
-    void state( XGL_IMAGE_STATE state )
+    void layout( XGL_IMAGE_LAYOUT layout )
     {
-        m_imageInfo.state = state;
+        m_imageInfo.layout = layout;
     }
     XGL_GPU_MEMORY memory() const
     {
@@ -209,9 +218,9 @@
         return m_targetView.obj();
     }
 
-    XGL_IMAGE_STATE state() const
+    XGL_IMAGE_LAYOUT layout() const
     {
-        return ( XGL_IMAGE_STATE )m_imageInfo.state;
+        return ( XGL_IMAGE_LAYOUT )m_imageInfo.layout;
     }
     XGL_UINT32 width() const
     {