[CI] Use uncrustify to check compliance with code formatting rules

This patch introduces a new CI pipeline for checking whether new code
complies with the Dune formatting rules.  For this, it runs the
uncrustify tool over all source files of the module and checks whether
that leads to any changes.

The configuration file for uncrustify is the one advertised on the
webpage that discusses the coding style for Dune

  https://dune-project.org/dev/codingstyle/
14 jobs for clang-format-for-whitespace-checking in 9 seconds (queued for 1 second)
Status Job ID Name Coverage
  Build
failed #197566
code-formatting-check

00:00:09

failed #197357
code-formatting-check

00:00:08

 
  Test
skipped #197369
duneci
debian-11-gcc-9-17-python
skipped #197360
duneci
debian:10 clang-7-libcpp-17
skipped #197358
duneci
debian:10 gcc-7-17
skipped #197368
iset:avx duneci allowed to fail
debian:10 gcc-7-17--expensive
skipped #197359
duneci
debian:10 gcc-8-noassert-17
skipped #197362
duneci allowed to fail
debian:11 gcc-10-20
skipped #197361
duneci allowed to fail
debian:11 gcc-9-20
skipped #197363
duneci
ubuntu:18.04 clang-5-17
skipped #197364
duneci
ubuntu:18.04 clang-6-17
skipped #197367
duneci
ubuntu:20.04 clang-10-20
skipped #197366
duneci
ubuntu:20.04 gcc-10-20
skipped #197365
duneci
ubuntu:20.04 gcc-9-20
 
Name Stage Failure
failed
code-formatting-check Build
Parsing: ./dune/python/common/vector.hh as language CPP
Parsing: ./dune/python/common/typeregistry.hh as language CPP
Parsing: ./dune/python/common/getdimension.hh as language CPP
Parsing: ./dune/python/common/densevector.hh as language CPP
Parsing: ./dune/python/common/logger.hh as language CPP
Parsing: ./doc/comm/buildindexset.hh as language CPP
Parsing: ./doc/comm/reverse.hh as language CPP
Cleaning up file based variables
ERROR: Job failed: exit code 1