For VK_EXT_graphics_pipeline_library, we need to be able to handle
missing descriptor sets. THis screws up dynamic buffers because we're
no longer guaranteed to be able to statically compute the index into
nvk_root_descriptor_table::dynamic_buffers while lowering descriptors.
Instead, we may need to look up the start index for the set in
nvk_root_descriptor_table::set_dynamic_buffer_start and compute from
there.
We also rework nvk_nir_lower_descriptors to take an array of (possibly
NULL) descriptor sets. This ensures that we don't make any assumptions
about the pipeline layout. It's also the interface we'll want for
implementing VK_EXT_shader_object.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27048>