zink: rework descriptor buffer templating to use offsets
compute programs can be reused across contexts, which means storing any pointers directly like this is going to lead to desync and crash
instead, make this like regular descriptor templates and calculate the offset from the current context to ensure that everything works as it should
fixes #8201 (closed)
Fixes: 7ab5c5d3 ("zink: use EXT_descriptor_buffer with ZINK_DESCRIPTORS=db")