swapchain: improve latency consistency and documentation
This mirrors a similar change in mpv, which helped reduce vsync jitter measurements by including the time of frame acquisition in the `swap_buffers` call. In general, doing things this way around is nicer for the user. In typical swapchain implementations, it also "does the right thing" w.r.t actually blocking until the buffer swap. As a side effect of the necessary internal cache metadata, we also make the vulkan swapchain more robust against API misuse (especially out-of-order / non-lockstepped swapchain calls).
Showing with 45 additions and 14 deletions