nir: Use gl_nir_lower_samplers_as_derefs to simplify and improve gl_nir_lower_samplers
This MR fixes a bug in the gl_nir_lower_samplers_as_derefs pass used by radeonsi, then rewrites gl_nir_lower_samplers (used by other drivers) to rely on that pass internally. This brings broader usage and testing to the newer samplers_as_derefs pass, and gives drivers using the older pass proper variable bindings for images and samplers. It also cuts some code from the old pass.