Add global_declarations to cbackend

This enables astnodes.Nodes to have a member required_global_declarations
by which they can specify a global declaration required for their usage.
20 jobs for global-declarations in 4 minutes and 4 seconds (queued for 2 seconds)
Status Job ID Name Coverage
  Test
passed #279519
docker cuda
build-documentation

00:00:48

passed #279518
cuda docker
flake8-lint

00:00:22

passed #279520
docker
minimal-conda

00:01:10

passed #279521
docker
minimal-ubuntu

00:00:43

passed #279522
win
minimal-windows

00:01:26

passed #279523
docker cuda AVX
tests-and-coverage

00:03:36

failed #279355
docker cuda
build-documentation

00:00:05

failed #279354
cuda docker
build-documentation

00:00:05

failed #279468
cuda docker
build-documentation

00:00:06

failed #279467
docker cuda
flake8-lint

00:00:05

failed #279353
cuda docker
flake8-lint

00:00:05

failed #279357
cuda docker
flake8-lint

00:00:05

failed #279356
docker cuda
flake8-lint

00:00:05

failed #279469
docker
minimal-conda

00:00:58

failed #279352
docker
minimal-conda

00:01:32

failed #279351
docker
minimal-ubuntu

00:00:05

failed #279470
docker
minimal-ubuntu

00:00:35

failed #279350
win
minimal-windows

00:00:24

failed #279471
win
minimal-windows

00:00:25

failed #279349
AVX cuda docker
tests-and-coverage

00:00:05