[4/n] Add descriptor set virtualization functions

These functions take care of:

- emulating the allocation and freeing of descriptor sets from pools,
tracking how many free sets and how many free descriptors of each type
we have remaining.
- emulating the update of descriptor sets via storing arguments of
VkWriteDescriptorSet, to be used in vkUpdateDescriptorSet(WithTemplate).

Change-Id: I77c22193c77956d156aae2fd6fbba20b8e0f1115
4 files changed