zink: dispatch refactor part one
this tackles fence reuse, deferred flushes, and primitive support for presentation barriers at end of frame
the next series will improve on presentation barriers, force implicit sync, and finally (mostly) remove the weird fencing from the flush hook