vkd3d: Refactor descriptor set layout creation for virtual heaps.
Creation of bindings, mappings and descriptor set layouts needs cleaning up, and doing so also paves the way for each descriptor set to contain only one vkd3d descriptor type. Allocation from descriptor pools is currently inefficient, and restricting descriptor types allows for a great improvement. RDR2 for example badly needs this.
We don't strictly need the commit which ends interleaving of scalar bindings, but anything which simplifies understanding this code is an advantage.
Edited by Conor McCarthy