Switch automatic composite update to WorkQueue

It is currently (ab)using the screen BlockHandler callback to do
this. But this can cause problems with other extension as their
block handlers might have executed before Composite's. And the
operations Composite does might result in them wanting to change
timeouts.

Practically this caused problems for TigerVNC's VNC extension which
failed to send out updates for Composite's screen updates.
1 job for compwork in 2 minutes and 23 seconds (queued for 2 seconds)
Status Job ID Name Coverage
  Test
passed #26804
job

00:02:23