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.
current is fine for nonlinear steady. otherwise we need to move matrix allocation to init, since this function is repeatedly called and there is no need to allocate them each time.