layers: Fix object lifetime bugs in DescriptorSetLayout

Incomplete copy construction of DescriptorSetLayout and safe_* types
causes embedded pointers (such as pImmutableSamplers) to become invalid
before they should. Fixing this for now by moving DescriptorSetLayout
and its embedded safe_* struct to ptrs within their containers and
explicitly deleting.
2 files changed