nir: store variable names to io instrs during io lowering
a common issue with using lowered io is that it makes debugging harder since io no longer corresponds to the source shader variables. this preserves variable names through lowered/scalarized io and adds some simple usage in zink as a demo
fixes #10849 (closed)