zink: add a block splitting pass for xfb
block outputs are tough for xfb because inlining the xfb emission accurately is impossible when int64 conversion is in effect (i.e., on turnip), typically leading to running out of locations to use for xfb outputs (because for some reason an xfb-only output still needs a location in spirv)
to address this, add a very simple pass which splits output structs into their component members, enabling better inlining prospects for the xfb outputs