layers: Add descriptor sets to CB_INVALID tracking

This is start of a series intended to enable CB_INVALID tracking for
descriptor sets. Much of the tracking is already in place in the
special-purpose uniqueBoundSets data struct, so I'll be migrating
the tracking from that struct to the more general-purpose
object_bindings set.
diff --git a/layers/descriptor_sets.cpp b/layers/descriptor_sets.cpp
index 1d568f4..d9eb277 100644
--- a/layers/descriptor_sets.cpp
+++ b/layers/descriptor_sets.cpp
@@ -320,12 +320,6 @@
 
 cvdescriptorset::DescriptorSet::~DescriptorSet() {
     InvalidateBoundCmdBuffers();
-    // Remove link to any cmd buffers
-    for (auto cb : cb_bindings) {
-        for (uint32_t i=0; i<VK_PIPELINE_BIND_POINT_RANGE_SIZE; ++i) {
-            cb->lastBound[i].uniqueBoundSets.erase(this);
-        }
-    }
 }
 
 
@@ -630,6 +624,16 @@
     InvalidateBoundCmdBuffers();
 }
 
+void cvdescriptorset::DescriptorSet::BindCommandBuffer(GLOBAL_CB_NODE *cb_node) {
+    // bind cb to this descriptor set
+    cb_bindings.insert(cb_node);
+    // Add bindings for descriptor set and individual objects in the set
+    cb_node->object_bindings.insert({reinterpret_cast<uint64_t &>(set_), VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT});
+    // TODO : Can bind individual objects from within each descriptor : buffers/images and their views, samplers & memory
+    //  The trick is we should only bind the objects actually "in use" by the cmd buffer, meaning that we need to
+    //  check active descriptor slots based on last bound state for this CB
+}
+
 cvdescriptorset::SamplerDescriptor::SamplerDescriptor() : sampler_(VK_NULL_HANDLE), immutable_(false) {
     updated = false;
     descriptor_class = PlainSampler;