Store parallel information in object.

Previously the information was just computed and store internally
in the method. Now the remote index information and the parallel index
for the cells is stored in the object.
Added invisible ghost cells and corrected partition types of faces.

The partition types of codim 1 entities in DUNE can be interior,
border, overlap, or front. To be able to distinguish these, we need
to be able to distinguish the boundary of the global domain from the
one of the domain that is stored on a process. We do this the following
way:
Each codim 0 entity that is not part of the global boundary has two
neighbors. One of them might be invalid, which is marked by its index
being numeric_limits<int>::max(). In this case it is part of the boundary
of the local domain of the processor (boundary() is false!) and of partition
type border and front, if the neighbor is part of partition interior and
overlap, respectively.

This patch uses this new layout and computes the partitions accordingly.
[parallel] Added interfaces for communication methods.

We use the parallel index sets together with the Interface
for the cell communication. As a communicator the new
VariableSizeCommunicator is used. For the face and point
communication we set up and compute the interface information
by hand. This is still a preparation for the communicate methods.
We now compute the communcation interfaces for cells, faces, and points.
Fix neighbor method.

An intersection has a neighbor if the other cell is valid.
Force update of the sequence counters in remote indices even if there are no neighbors.
Removed debugging output.
Correctly free interface information to prevent memory leaks.
Fixed private copy constructor.
[bugfix] Check whether the global index really is present.

Previously we wrote to memory that was out of bounds as we
falsely assumed that all indices would be present in the
distributed grid.
Prevent copying the the message buffers whereever possible.
[bugfix] Correctly compute owner and overlap attributes
[bugfix] Correctly compute the remote cell index list information.
[bugfix] Correctly compute the interface region.

Previously the interface lists were not correctly included in the
interface information map and a segmentation fault occured during
reserving space for the list. This patch fixes this.
[bugfix] Use the correct view when computing the partition type of the points.

Previously we used the indices of the global view to address the partition type
indicator. Thisresulted in segmentation faults. This patch resolves this.
Add an MPI error handler that throws an exception for debugging.

With this patch an exception gets thrown if an MPI error occurs.
This lets us use "catch throw" in gdb for debugging.
Only check indices and centers if this is a run with only one process.