shaders/sampling: generalize PL_SHADER_SIG_SAMPLER2D

This allows us to accept sampler types other than sampler2D. In
principle, any sampler type is supported, but due to shaders/sampling
being the only user of this API, we can restrict ourselves to only 2D
samplers in the implementation. Notably, though, we also support e.g.
PL_SAMPLER_RECT.
11 jobs for master in 7 minutes and 22 seconds (queued for 3 seconds)
Status Job ID Name Coverage
  Build
passed #399020
aarch64 docker
build-aarch64

00:00:35

passed #399021
macos
build-macos

00:00:11

passed #399016
amd64 docker
build-ubuntu

00:00:45

passed #399017
amd64 docker
build-ubuntu-static

00:00:45

passed #399018
amd64 docker
build-win32

00:00:20

passed #399019
amd64 docker
build-win64

00:00:17

 
  Test
passed #399023
gpu
test-gpu

00:01:39

75.5406%
passed #399024
gpu
test-gpu-asan

00:01:47

passed #399025
gpu
test-gpu-msan

00:01:35

passed #399026
gpu
test-gpu-ubsan

00:01:33

passed #399022
amd64 docker
test-ubuntu-scan

00:00:36