Move old files into the attic

The attic are the place where files which we don't use right now, but
which we acknowledge some amount of valuable time has been spent on and
which may be usable some day in the future, so we don't have the
conscience to right out delete them.

These files are not expected to compile, and certainly not to run and
produce sensible results, anymore. However, with some work they can
possibly be converted into proper unit tests or examples.
Issue warning about the status of files in the attic
Put project-specific information in dune.module

This information was previously stored in the build system; now they
are all in one canonical place!
Add a label field to the project information

The difference between the version number (1.0) and the label (2013.03)
is: The version is time-independent but shows the level of compatibility,
see e.g. <http://www.semver.org>, whereas the label is a marketing tool
which describes the project progress.
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).
Don't install debug syms for a library that isn't there
Only include library if there is one
Only make target if there is any source files

If there is no source files, we set a blank target to signal to the
other components of the build system that they shouldn't be looking
for a library.
Provide a define for having OpenMP
Enable support for Ninja build generator

Use the Ninja build generator if '--enable-ninja' is passed on the
command line to ./configure (or of course if -GNinja is passed
directly to CMake).
Recognize Clang to be a GCC-compatible compiler

Clang aims to be compatible with GCC when it comes to command-line
parameters. Where we enable functionality based on the presence of
a GCC-compiler, we can use the same functionality with Clang.

This patch introduces a new variable CXX_COMPAT_GCC which is true if
the compiler handles the same options as GCC, and this variable is
subsequently used in tests instead of CMAKE_COMPILER_IS_GNUCXX (which
remains if we need to test if we really have GCC, e.g. for version)
Have distclean target keep up with build improvements

If you run `cmake --build . -- distclean` all generated files will
now be gone! This adds the files that have been introduced in later
improvements to the build system.
Build system: make it work for modules which do not need libraries
Module mode CMake probe for opm-material
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
Create a set of config variables for implementation

The config variables in _CONFIG_IMPL_VARS are only written to config.h
and not the .pc or -config.cmake files. They can thus only be used by
the implementation files and not the headers. Use this set to avoid
exposing the variables to other projects, when it is likely that a
probe used by that other project may turn up a different result.
Provide hook to configure getting other's version

This hook together with the bundled convenience macro makes it
possible to add the version of another module to config.h using
code like this:

macro (config_hook)
  opm_need_version_of ("dune-common")
endmacro (config_hook)