Draft: Initial debug utils naming implementation
Adds names to some objects (pipelines, shader stages, and pipeline layouts so far) via VK_EXT_debug_utils. This means that in tools like RenderDoc, they get names instead of numbers, and in the logs from validation errors or the API dump layer, they get names instead of pointers, making it possible to have some idea of what was being drawn without needing RenderDoc.
It's a draft because the performance impact even when it's off isn't zero. I'm not sure anything can be done about that other than gating it off behind a #define, and therefore a CMake option. Even having names in the scenegraph without telling Vulkan about them isn't free as it means a vsg::Auxiliary needs to exist for the object, meaning extra memory usage (although vsg::Auxiliary uses the system allocator, so hopefully won't end up wasting space in hot cache lines).
For now, it's still potentially useful to temporarily merge this branch while investigating a problem and then discard the changes once it's been solved, but I hope we can come up with something more maintainable.
The built-in shader sets are altered because they've been given names. A counterpart PR to vsgExamples will be opened shortly.