allows injecting evaluation type into L2 functional

should not affect existing user code and avoids
copy-pasting the entire class just to get a different evaluation type
[prolongation] avoid including playground header, use forwards instead
[assembler.system] don't hardcode local codim0 matrix assembler type
fixes perfect forwarding vs. additional single arg constructors
[operators.cg] removes unnec. code duplication
[functional.l2] adds additional ctor to pass existing local functional
Revert "[assembler.system] don't hardcode local codim0 matrix assembler type"

This reverts commit b66046d56855b3dad5ff34e3edce9a4baa0e9789.
[assembler.system] gets an explicit add_codim0_assembler function instead of b66046d568
[assembler.system] implement another explcit add_XXX for codim  vector assembler
sparsity pattern does not use set anymore but vector

This was necessary as std::set takes about three
times the memory of a std::vector leading to the
sparsity pattern taking more memory than the
matrix itself. The additional std::find should
be neglectable as the size of the vectors is
rather small.
[spaces] fix reference element include for EXA
removes deprecated static_assert header
const constexpr -> constexpr
 [tests] fixes Spacetest compile
Merge branch 'for_dune-multiscale'

Conflicts:
	dune/gdt/spaces/interface.hh
[tests] fixes feature guards
[tests] fixes compile

moved stuff to test_common -> requires new dune-stuff
adjusted for CubeGridProvider change
[tests] more alugrid feature guards