nvk: VK_EXT_image_drm_format_modifier support
What does this MR do and why?
This is the same as !24795 (merged), but with the nil
parts rewritten in Rust and the nvk
parts modified to account for changes since then (mainly newer nil entrypoints and sparse support).
Closes #9636 (closed)