zink: some descriptor refactoring
requested to merge zmike/mesa:zink-descriptor_refactor_part_two_you_thought_it_was_over_but_really_it_had_just_begun into main
move the descriptor hashing code to the descriptors file, then split off a layout key object from descriptor pools
a layout key is effectively the info needed to create a descriptor pool, and abstracting this now will open up some other refactoring possibilities in the near future