layers: Enhancements to MemTracker and DrawState

DrawState flags error when Descriptor Set that hasn't had "EndUpdate" called is bound to cmd buffer.
Moved MemTracker struct defines to header.
Added State to memory objects and flag state transition errors at prepare time
Added CreateInfo for all object types that can be bound to memory
diff --git a/layers/draw_state.h b/layers/draw_state.h
index 73231e5..dd6ca72 100644
--- a/layers/draw_state.h
+++ b/layers/draw_state.h
@@ -45,6 +45,7 @@
     DRAWSTATE_VTX_INDEX_OUT_OF_BOUNDS       = 17, // binding in xglCmdBindVertexData() too large for PSO's pVertexBindingDescriptions array
     DRAWSTATE_INVALID_DYNAMIC_STATE_OBJECT  = 18, // Invalid dyn state object
     DRAWSTATE_MISSING_DOT_PROGRAM           = 19, // No "dot" program in order to generate png image
+    DRAWSTATE_BINDING_DS_NO_END_UPDATE      = 20, // DS bound to CmdBuffer w/o call to xglEndDescriptorSetUpdate())
 } DRAW_STATE_ERROR;
 
 typedef enum _DRAW_TYPE