Node adjacency table

I have started a creation of a node adjacency table. The reason for this were mainly the endless memory reallocations in LIS. (When creating matrix there, the data is first written into a buffer, which has to be allocated). Here again the net gain is:
 - measured on the ExternalData/.../cube_1e4:  5.40s on master vs. 0.25s this branch.
 - measured on the ExternalData/.../cube_1e5:  820s on master vs.  2.50s this branch.

The (`createTable`) algorithm stores adjacent node ids to every node in a vector of vector structure. The nodes i and j are adjacent iff they are shared by an element (computed by `setNodeConnectedByElements()`.
Current implementation provides only the `getNodeDegree()` function, because I don't know the required access pattern for creation of CRS matrices etc.

I also add a `setMatrixSparsity()` function (empty implementation by default), which is currently used in the lis interface. (Unfortunatly a little too technical...)

Computation and application are in the `GroundwaterFlowProcess`.
How does this rely on the node's id being equivalent to it's address? Is this important for the following steps?