CMake cleanup/rewrite
- Decide on a minimum CMake version (e.g. 3.10, as included by Ubuntu 18.04) and then make use of all the new features available to simplify our build system.
- Make it easier to use of Walberla as a library in external projects.
- Rewrite the whole build system according to current CMake best practices.
- Eliminate all the hacks for library detection on old systems.
- Make each submodule either header-only or completely compiled into a library (e.g. using explicit template instantiation if the set of possible types is small). The current state where most submodules are like 10% compiled just combines the downsides of both (long compile times, requirement of linking).
Edited by Michael Kuron