MVK_ALLOW_METAL_FENCES environment variable. Refactor MVKSemaphore class into separate MVKSemaphoreMTLFence, MVKSemaphoreMTLEvent, and MVKSemaphoreEmulated subclasses. Add MVK_ALLOW_METAL_FENCES environment variable to optionally enable using MTLFence for Vulkan semaphores. Add MVKPhysicalDeviceMetalFeatures::fences to track MTLFence availability. Update VK_MVK_MOLTENVK_SPEC_VERSION to version 22.