zink: resource sync
this is a collection of patches which:
- adds a mechanism for determining how a resource is used on a given batch (read or write)
- converts existing resource referencing to use this
- adds further referencing in some places where needed
- forces transfer map to stall only when necessary based on pending usage
I have a ton of (later) patches which improve upon this architecture, but it does work quite nicely even with this sort of brute force "wait on all fences" approach to fix up a bunch of test cases.