layers: Migrate VerifyUpdateConsistency to DescriptorSetLayout class

This was in the DescriptorSet class, but really belonged in the Layer.
There was also a bug where it did not correctly handle the case of an
initial offset that oversteps the size of the first binding being updated.
That is legal according to the spec so added code to handle that case by
walking the bindings until we get to the actual binding on which the first
update will occur.
diff --git a/layers/descriptor_sets.h b/layers/descriptor_sets.h
index baf0c49..deeebdd 100644
--- a/layers/descriptor_sets.h
+++ b/layers/descriptor_sets.h
@@ -117,6 +117,9 @@
     // For a particular binding, get the global index
     uint32_t GetGlobalStartIndexFromBinding(const uint32_t) const;
     uint32_t GetGlobalEndIndexFromBinding(const uint32_t) const;
+    // For a particular binding starting at offset and having update_count descriptors
+    //  updated, verify that for any binding boundaries crossed, the update is consistent
+    bool VerifyUpdateConsistency(uint32_t, uint32_t, uint32_t, const char *, const VkDescriptorSet, std::string *) const;
 
   private:
     VkDescriptorSetLayout layout_;
@@ -319,6 +322,7 @@
     // Perform copy update, using 'this' set as the dest and the passed-in DescriptorSet as the src
     bool CopyUpdate(debug_report_data *, const VkCopyDescriptorSet *, const DescriptorSet *, std::string *);
 
+    const DescriptorSetLayout *GetLayout() const { return p_layout_; };
     VkDescriptorSet GetSet() const { return set_; };
     // Return unordered_set of all command buffers that this set is bound to
     std::unordered_set<VkCommandBuffer> GetBoundCmdBuffers() const { return bound_cmd_buffers_; }
@@ -341,7 +345,6 @@
 
   private:
     bool ValidateUpdate(const VkWriteDescriptorSet *, const uint32_t, std::string *) const;
-    bool VerifyUpdateConsistency(uint32_t, uint32_t, uint32_t, const char *, std::string *) const;
     bool some_update_; // has any part of the set ever been updated?
     VkDescriptorSet set_;
     uint32_t descriptor_count_; // Count of all descriptors in this set