zink: buffer map refactor
this collects a bunch of changes which need to be made but which can't be split up incrementally without breaking things:
- move map offset to zink_transfer::offset for consistent handling
- fix stream uploader map rules to only apply for discard cases so the stream uploader doesn't explode
- fix the staging buffer map rules to apply to any non-staging readback
- stop making huge staging buffers for readback
- break out the DONTBLOCK case since this is only coming from qbo readback
- add explicit read-only sync for maps to stall on writes