layers: Add DrawState check for DescriptorSet availability in Pool

Prior to allocating descriptors from a Pool, verify that requested number/type of descriptors are available in that Pool, flag error if not.
When Pool is reset or when descriptors are allocated, release descriptors back to pool.

Added constructor and destructor for POOL_NODE to simplify allocation/cleanup.

Added layer documentation for new check and AllocDescriptorFromEmptyPool test to verify that error is correctly flagged.
4 files changed