Separate build concerns for better maintainability

Introduce a main build file which uses modules in the cmake/ directory
for most of its bulk work, which agains retrieve information from files
in the root of the source tree (dune.module, CMakeLists_files.cmake) to
get information about the project.

Thus, the cmake/ directory is shared between all the projects down to
the last bit; only project-specific customizations go into the main file
in form of _hook macros (which are called in specific places).
Upgrade Findopm-material to use separate prerequisite list

This will now be included both by the find module and by the project
file itself.
Allow PCH option to be on even if there is no library
Only build before library target if there is any
Only configure libtool for libraries that exist