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/demos/cube.c b/demos/cube.c
index f5b27cb..155729f 100644
--- a/demos/cube.c
+++ b/demos/cube.c
@@ -262,12 +262,11 @@
 {
     const XGL_COLOR_ATTACHMENT_BIND_INFO color_attachment = {
         .view = demo->buffers[demo->current_buffer].view,
-        .colorAttachmentState = XGL_IMAGE_STATE_TARGET_RENDER_ACCESS_OPTIMAL,
+        .layout = XGL_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL,
     };
     const XGL_DEPTH_STENCIL_BIND_INFO depth_stencil = {
         .view = demo->depth.view,
-        .depthState = XGL_IMAGE_STATE_TARGET_RENDER_ACCESS_OPTIMAL,
-        .stencilState = XGL_IMAGE_STATE_TARGET_RENDER_ACCESS_OPTIMAL,
+        .layout = XGL_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL,
     };
     const XGL_FLOAT clear_color[4] = { 0.2f, 0.2f, 0.2f, 0.2f };
     const XGL_FLOAT clear_depth = 1.0f;
@@ -880,8 +879,6 @@
 
     demo->uniform_data.attach.sType = XGL_STRUCTURE_TYPE_BUFFER_VIEW_ATTACH_INFO;
     demo->uniform_data.attach.view = demo->uniform_data.view;
-    // no preparation..
-    demo->uniform_data.attach.state = XGL_BUFFER_STATE_DATA_TRANSFER;
 }
 
 static void demo_prepare_descriptor_set(struct demo *demo)
@@ -908,7 +905,7 @@
     image_view.sType = XGL_STRUCTURE_TYPE_IMAGE_VIEW_ATTACH_INFO;
     image_view.pNext = NULL;
     image_view.view = demo->textures[0].view;
-    image_view.state = XGL_IMAGE_STATE_GRAPHICS_SHADER_READ_ONLY;
+    image_view.layout = XGL_IMAGE_LAYOUT_GENERAL;
 
     xglAttachSamplerDescriptors(demo->dset, 1, 1, &demo->textures[0].sampler);
     xglAttachImageViewDescriptors(demo->dset, 2, 1, &image_view);
diff --git a/demos/tri.c b/demos/tri.c
index 82aadc7..8d74698 100644
--- a/demos/tri.c
+++ b/demos/tri.c
@@ -86,12 +86,11 @@
 {
     const XGL_COLOR_ATTACHMENT_BIND_INFO color_attachment = {
         .view = demo->buffers[demo->current_buffer].view,
-        .colorAttachmentState = XGL_IMAGE_STATE_TARGET_RENDER_ACCESS_OPTIMAL,
+        .layout = XGL_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL,
     };
     const XGL_DEPTH_STENCIL_BIND_INFO depth_stencil = {
         .view = demo->depth.view,
-        .depthState = XGL_IMAGE_STATE_TARGET_RENDER_ACCESS_OPTIMAL,
-        .stencilState = XGL_IMAGE_STATE_TARGET_RENDER_ACCESS_OPTIMAL,
+        .layout = XGL_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL,
     };
     const XGL_FLOAT clear_color[4] = { 0.2f, 0.2f, 0.2f, 0.2f };
     const XGL_FLOAT clear_depth = 0.9f;
@@ -565,7 +564,7 @@
             .sType = XGL_STRUCTURE_TYPE_IMAGE_VIEW_ATTACH_INFO,
             .pNext = NULL,
             .view = demo->textures[i].view,
-            .state = XGL_IMAGE_STATE_GRAPHICS_SHADER_READ_ONLY,
+	    .layout = XGL_IMAGE_LAYOUT_GENERAL,
         };
 
         xglAttachSamplerDescriptors(demo->dset, 2 * i, 1,