GPU support for CUDA and Metal

Dear NGSolve community,

in the current release we have redesigned GPU offloading in NGSolve. Kernels are JIT-compiled from strings.

We have merged CUDA and Metal to a common syntax, such that the same kernels compile for NVIDIA GPUs and Apple GPUs.

At the moment we have ported our existing CUDA kernels to commonGPU, and reworked the matrix-free operator application from scratch.

Examples are in

and updated CUDA examples

We hope it is a useful interface for your GPU experiments, and it will speed up your simulations.
We are happy to get your feedback.

Joachim