layers: Restore DrawState to general level of functionality

DrawState updated to track new resource binding model. Currently flagging some errors and printing out Region/Set/Layout/Update info for descriptors. Still lots of work to do. Next step is getting descriptors in dot file working again.
diff --git a/layers/draw_state.h b/layers/draw_state.h
index 5dcc849..18fa7fe 100644
--- a/layers/draw_state.h
+++ b/layers/draw_state.h
@@ -35,6 +35,7 @@
     DRAWSTATE_UNKNOWN_DS_TYPE,                  // Shader slot mapping is not recognized
     DRAWSTATE_DS_MAPPING_MISMATCH,              // DS Mapping mismatch
     DRAWSTATE_INVALID_REGION,                   // Invalid DS region
+    DRAWSTATE_INVALID_SET,                      // Invalid DS
     DRAWSTATE_INVALID_LAYOUT,                   // Invalid DS layout
     DRAWSTATE_DS_END_WITHOUT_BEGIN,             // EndDSUpdate called w/o corresponding BeginDSUpdate
     DRAWSTATE_UPDATE_WITHOUT_BEGIN,             // Attempt to update descriptors w/o calling BeginDescriptorRegionUpdate
@@ -43,7 +44,7 @@
     DRAWSTATE_DS_MEMORY_ATTACH_FAILED,          // Error while attempting to Attach Mem mapping to DS Slot
     DRAWSTATE_DS_NESTED_DS_ATTACH_FAILED,       // Error while attempting to Attach Nested DS mapping to DS Slot
     DRAWSTATE_CLEAR_DS_FAILED,                  // Error while attempting ClearDS
-    DRAWSTATE_INVALID_PIPELINE,                 // Invalid DS referenced
+    DRAWSTATE_INVALID_PIPELINE,                 // Invalid Pipeline referenced
     DRAWSTATE_VTX_INDEX_OUT_OF_BOUNDS,          // binding in xglCmdBindVertexData() too large for PSO's pVertexBindingDescriptions array
     DRAWSTATE_INVALID_DYNAMIC_STATE_OBJECT,     // Invalid dyn state object
     DRAWSTATE_MISSING_DOT_PROGRAM,              // No "dot" program in order to generate png image
@@ -51,7 +52,8 @@
     DRAWSTATE_NO_DS_REGION,                     // No DS Region is available
     DRAWSTATE_OUT_OF_MEMORY,                    // malloc failed
     DRAWSTATE_DESCRIPTOR_TYPE_MISMATCH,         // Type in layout vs. update are not the same
-    DRAWSTATE_DESCRIPTOR_UPDATE_OUT_OF_BOUNDS   // Descriptors set for update out of bounds for corresponding layout section
+    DRAWSTATE_DESCRIPTOR_UPDATE_OUT_OF_BOUNDS,  // Descriptors set for update out of bounds for corresponding layout section
+    DRAWSTATE_INVALID_UPDATE_INDEX              // Index of requested update is invalid for specified descriptors set
 } DRAW_STATE_ERROR;
 
 typedef enum _DRAW_TYPE
@@ -87,6 +89,8 @@
     XGL_VERTEX_INPUT_BINDING_DESCRIPTION*   pVertexBindingDescriptions;
     uint32_t                                vtxAttributeCount; // number of attributes
     XGL_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION* pVertexAttributeDescriptions;
+    uint32_t                                attachmentCount;   // number of CB attachments
+    XGL_PIPELINE_CB_ATTACHMENT_STATE*       pAttachments;
 } PIPELINE_NODE;
 
 typedef struct _SAMPLER_NODE {
@@ -143,6 +147,8 @@
     XGL_FLAGS                                    stageFlags;
     const uint32_t                               shaderStageBindPoints[XGL_NUM_SHADER_STAGE];
     const XGL_DESCRIPTOR_SET_LAYOUT_CREATE_INFO* pCreateInfoList;
+    uint32_t                                     startIndex; // 1st index of this layout
+    uint32_t                                     endIndex; // last index of this layout
     struct _LAYOUT_NODE*                         pPriorSetLayout; // Points to node w/ priorSetLayout
     struct _LAYOUT_NODE*                         pNext; // Point to next layout in global LL chain of layouts
 } LAYOUT_NODE;