Local assembler for GroundwaterFlowProcess and LocalDataInitializer

~~This is follow up of #519 (Refactor dof table) and must not be merged before.~~
~~There are 5 commits in this PR starting at "[AL] Add back addToGlobal() in VectorMatrixAsm".~~
__Update:__ Rebased on master including the "Refactor dof table"

Three main changes included:
 - Add back the `VectorMatrixAssembler::addToGlobal()`: The local matrix/vector types are required in VectorMatrixAssembler otherwise, and having the `GlobalSetupType` already at hand the suggested way seems easier.
 - Add `LocalDataAssembler<ShapeFunction>` derived from `LocalDataAssemblerBase` in `ProcessLib::GroundwaterFlow` namespace. The base class is needed, because we store a vector of local assemblers in the process for each element or element type.
 - Add `LocalDataInitializer`, which calls the `LocalDataAssembler<ShapeFunction>::init()` function knowing the `ShapeFunction` type from the mesh element type passed by the `LocalAssemblerBuilder`.

That's it!

I already see that the documentation needs some updates/extensions; shall add soon.
would you add a variable `auto &shape = _shape_matrices[ip]`?  then, the expression becomes shorter and more readable