layers: Add validation for VkDescriptorBufferInfo struct

For a descriptor write update to a buffer type, verify that the contents of
VkDescriptorBufferInfo struct are valid according to valid usage guidelines
of the spec.

Spun off the usage bit validation into its own function ValidateBufferUsage().
Previous ValidateBufferUpdate() function now calls that function as well as
performing all of the checks for the buffer, range, and offset members of
VkDescriptorBufferInfo struct.
diff --git a/layers/descriptor_sets.h b/layers/descriptor_sets.h
index 609f5d0..e97850e 100644
--- a/layers/descriptor_sets.h
+++ b/layers/descriptor_sets.h
@@ -354,7 +354,8 @@
     bool VerifyWriteUpdateContents(const VkWriteDescriptorSet *, const uint32_t, std::string *) const;
     bool VerifyCopyUpdateContents(const VkCopyDescriptorSet *, const DescriptorSet *, VkDescriptorType, uint32_t,
                                   std::string *) const;
-    bool ValidateBufferUpdate(VkBuffer, VkDescriptorType, std::string *) const;
+    bool ValidateBufferUsage(BUFFER_NODE const *, VkDescriptorType, std::string *) const;
+    bool ValidateBufferUpdate(VkDescriptorBufferInfo const *, VkDescriptorType, std::string *) const;
     // Private helper to set all bound cmd buffers to INVALID state
     void InvalidateBoundCmdBuffers();
     bool some_update_; // has any part of the set ever been updated?