Draft: Move our build requirements to c++20
This is an exploratory branch to see how CI and the code reacts. I assume we have to also upgrade our CI images at least from clang-8 to clang-10. For gcc we would also need to go to v10.
cmake is required to 3.12 (up from 3.9).
Why?
- better error messages
- better handling of templates, need to check compile time...
- new "concepts" as a proper way to handle template requirements
- lots of new features, see e.g. https://www.geeksforgeeks.org/features-of-c-20/
Edited by Ralf Ulrich