Num lib shape functions

Two main changes to the NumLib FEM part:
 - New GaussIntegrationPolicy: it specifies a gauss integration method for a given geometric mesh element type.	3a7e535
 - New ShapeMatrixPolicy is set by default to eigen fixed matrix/vector types. There are two impelemented policies: Eigen fixed and eigen dynamic. 08d0871 . Both are checked in the tests 8e0a8b3 .

Other changes (especially in tests) are type juggling to make the above things possible.

The first change (GaussIntegrationPolicy) splits off the dependency from the TemplateIsoparametric type.
The second change (ShapeMatrixPolicy) should provide a single type for local assembler matrix/vector types. I'd move this configuration to CMake later on.

I'd like to hear some feedback on these ideas. The test code can be simplified, for sure: local pull requests are welcome.
This is not directly visible in this PR. It is used in the initialization of local assemblers.
In detail:
The local assembler is depending on ShapeFunction (template) and looks like this:
```c++
void
    init(MeshLib::Element const& e, double const hydraulic_conductivity)
    {
        using FemType = NumLib::TemplateIsoparametric<
            ShapeFunction, ShapeMatrices>;
        FemType fe(*static_cast<const typename ShapeFunction::MeshElement*>(&e));
        // FemType fe(e); <-- Not working, because the TemplateIsoparametric needs
        //                                the specific MeshElementType.
        for (std::size_t ip(0); ip < n_integration_points ...
    }
```
In the init function we can use the static cast, in TemplateIsoparametric we would need a dynamic cast, I think.