layers: Add copy constructors and initializers for safe_* structs
layers: Add copy constructors and initializers for safe_* structs

Any safe struct for which default copy constructor was incorrect was
broken (anything with embedded ptrs). This change fixes that by adding
correct copy constructors. Also had to add initializers that can take
object ptrs in order for copy constructor code to work.

critsec/Vulkan-LoaderAndValidationLayers,sashinde/VulkanTools,critsec/Vulkan-LoaderAndValidationLayers,sashinde/VulkanTools,sashinde/VulkanTools,elongbug/Vulkan-LoaderAndValidationLayers,critsec/Vulkan-LoaderAndValidationLayers,Radamanthe/VulkanSamples,KhronosGroup/Vulkan-LoaderAndValidationLayers,Radamanthe/VulkanSamples,elongbug/Vulkan-LoaderAndValidationLayers,Radamanthe/VulkanSamples,KhronosGroup/Vulkan-LoaderAndValidationLayers,sashinde/VulkanTools,elongbug/Vulkan-LoaderAndValidationLayers,Radamanthe/VulkanSamples,elongbug/Vulkan-LoaderAndValidationLayers,KhronosGroup/Vulkan-LoaderAndValidationLayers,KhronosGroup/Vulkan-LoaderAndValidationLayers,critsec/Vulkan-LoaderAndValidationLayers,Radamanthe/VulkanSamples,Radamanthe/VulkanSamples