also added ability to use Compositions as a std::hash in unordered_* types. Further added a constructor to build a Composition from a const CompositionAbstract&
we need an autodiff library at some point (or we need to roll our own but I do not think that makes sense). CppAD is well tested and header only and easy to include. It is also Liscene compatible with GPL v3.0. Here we bring it in as a dependency
MFEM is a dependency of our code and we want to build it with our code for portability, here I add a meson subproject which fetches mfem and builds it. Because of some issues with CMake and meson I apply a patch which manually disables running tests and building examples and miniapps in mfem. This is okay as mfem here is not intenteded to be linked against other programs (though it still can be).