[test.empty] added
[cmake] use GridUtils to define GRIDTYPE and GRIDDIM

These can be now changed using ccmake. Additionally default to ALUGRID_.
This made HAVE_ALUGRID true in the testcases for me.
[cmake] move the isystem stuff before the add_subdir directives

This really disables all warning from dependent modules for me.
[cmake] manually scan for dependent headers

This really enables header listing of all dependent modules for me. cmake
takes noticeable longer though - if this bother too many people we have to
revert.
[functions.indicator] added static info and creation methods
[test.functions_functions] update
[functions.flattop] actually implement the published variant.
[test.functions_flattop] update
[functions] rewrite of FunctionProvider to reduce code duplication

There is finally only one FunctionProvider, all specializations are gone.
The price for this is one additional line in all functions that should be
provided which is acceptable. See the added documentation of
FunctionProvider on how to proceed for new functions. The only drawback is
that there are still four places in functions.hh that need to be touched.
This is left as an exercise for someone who fancies static loops over tuple
types (not a tuple object), I am too tired now... :)