zink: break out draw dispatch into separate functions

this is much easier to read and is going to greatly simplify the eventual
multidraw implementation which will be dropped in

also it allows moving conditionals outside of loops to very slightly improve
drawoverhead performance (with multidraw)
40 jobs for !10701 with zink-draw_refactor in 8 seconds (queued for 5 seconds)
detached
Status Job ID Name Coverage
  Sanity
passed #9589883
sanity

00:00:08

 
  Container
manual #9589886
aarch64 manual
arm_build
manual #9589887
windows shell 1809 mesa manual
windows_build_vs2019
manual #9589884
manual
x86_build-base
manual #9589885
manual
x86_test-base
 
  Container 2
created #9589892
android_build
created #9589889
i386_build
created #9589895
kernel+rootfs_amd64
created #9589896
aarch64
kernel+rootfs_arm64
created #9589897
aarch64
kernel+rootfs_armhf
created #9589890
ppc64el_build
created #9589891
s390x_build
created #9589888
x86_build
created #9589893
x86_test-gl
created #9589894
x86_test-vk
 
  Meson X86 64
created #9589903
meson-clang
created #9589904
meson-clover
created #9589900
meson-clover-testing
created #9589901
meson-gallium
created #9589902
meson-release
created #9589898
meson-testing
created #9589899
meson-testing-asan
created #9589905
meson-vulkan
 
  Build Misc
created #9589906
arm_test
created #9589907
meson-android
created #9589909
aarch64
meson-arm64
created #9589910
aarch64
meson-arm64-asan
created #9589911
aarch64
meson-arm64-build-test
created #9589908
aarch64
meson-armhf
created #9589912
meson-i386
created #9589915
meson-mingw32-x86_64
created #9589914
meson-ppc64el
created #9589913
kvm
meson-s390x
 
  Intel
created #9589918
mesa-ci-aarch64-lava-collabora manual
iris-amly-traces:amd64
created #9589916
mesa-ci-aarch64-lava-collabora manual
iris-apl-traces:amd64
created #9589917
mesa-ci-aarch64-lava-collabora manual
iris-glk-traces:amd64
 
  Layered Backends
created #9589922
zink-lvp-gl
created #9589920
zink-lvp-gles2
created #9589921
zink-lvp-gles3
created #9589919
zink-piglit-quick_gl