Collect sync request for during the sync interval time just
like before but instead of using XSync to send get-input-focus
requests and block for replies when the sync interval timer
fires, we're now just sending get-input-focus requests using
XCB and give each back-end server the sync-interval time to
respond before we block.
This provides significantly better performance, especially
with high latency connections.
The default sync batch interval of 100ms provides good
performance for back-ends servers with round-trip times
somewhat less than 100ms and is not long enough to make
the batch processing noticeably on low latency connections.
This was an attempt to avoid scratch gc creation and validation for paintwin
because that was expensive. This is not the case in current servers, and the
danger of failure to implement it correctly (as seen in all previous
implementations) is high enough to justify removing it. No performance
difference detected with x11perf -create -move -resize -circulate on Xvfb.
Leave the screen hooks for PaintWindow* in for now to avoid ABI change.