zink: enforce context-unsetting for surfaces on context destroy

surfaces can be shared between contexts in various ways, so zink needs to
ensure that any time a context (or even the threaded context) is destroyed,
the surface->context pointer is replaced with a non-dead one so that things won't
explode later on

fixes some obscure renderdoc test case
37 jobs for !10531 with zink-really_really_stupid in 24 seconds (queued for 3 seconds)
latest detached
Status Job ID Name Coverage
  Sanity
passed #9324066
sanity

00:00:24

 
  Container
manual #9324069
aarch64 manual
arm_build
manual #9324070
windows shell 1809 mesa manual
windows_build_vs2019
manual #9324067
manual
x86_build-base
manual #9324068
manual
x86_test-base
 
  Container 2
created #9324075
android_build
created #9324072
i386_build
created #9324078
kernel+rootfs_amd64
created #9324079
aarch64
kernel+rootfs_arm64
created #9324080
aarch64
kernel+rootfs_armhf
created #9324073
ppc64el_build
created #9324074
s390x_build
created #9324071
x86_build
created #9324076
x86_test-gl
created #9324077
x86_test-vk
 
  Meson X86 64
created #9324086
meson-clang
created #9324087
meson-clover
created #9324083
meson-clover-testing
created #9324084
meson-gallium
created #9324085
meson-release
created #9324081
meson-testing
created #9324082
meson-testing-asan
created #9324088
meson-vulkan
 
  Build Misc
created #9324089
arm_test
created #9324090
meson-android
created #9324092
aarch64
meson-arm64
created #9324093
aarch64
meson-arm64-asan
created #9324094
aarch64
meson-arm64-build-test
created #9324091
aarch64
meson-armhf
created #9324095
meson-i386
created #9324098
meson-mingw32-x86_64
created #9324097
meson-ppc64el
created #9324096
kvm
meson-s390x
 
  Layered Backends
created #9324102
zink-lvp-gl
created #9324100
zink-lvp-gles2
created #9324101
zink-lvp-gles3
created #9324099
zink-piglit-quick_gl