render/vulkan: use non-coherent memory for read_pixels()
The spec for VkMemoryPropertyFlagBits says:
device coherent accesses may be slower than equivalent accesses without device coherence [...] it is generally inadvisable to use device coherent or device uncached memory except when really needed
We don't really need coherent memory so let's not require it and invalidate the memory range after mapping instead.
Closes: #3868 (closed)