Implement new buildmode for bcrs matrices
added uppercases to names and a new buildStage() getter
add checking whether allocated array size is exceeded
add buffer to overflowsize
additional checking whether memory is sufficient
fix previously introduced bug
[Cleanup] remove debug code
Add wrapper object for new build mode

This wrapper allows code to use the BCRSMode in implicit
build mode with the default operator[][] API during the
initial build stage.
make the build mode wrapper implementation a template specialization

The given implementation only makes sense for a BCRSMAtrix, thus it should
only be used for such. This is in line with ISTLs general coding style.
Also added bit of doc.
[Bugfix] fix having a typename and method named M

call the matrix "Matrix" instead.
Set the name of the new buildmode to "implicit"

The sparsity pattern of the matrix is defined implicitly while
assembling the matrix.
[Tests] Add unit tests for new implicit build mode of BCRSMatrix
[BCRSMatrix] Rename setmymodeParameters() to setImplicitBuildModeParameters()

This one slipped through the cracks when renaming the build mode...
[BCRSMatrix] Improve documentation for implicit build mode
[BCRSMatrix] Clean up BuildModeWrapper

- Don't needlessly specialize the wrapper, we can still do that
  we we encounter the need for it.
- Add some doxygen documentation.
- Clean up formatting.
[BCRSMatrix] Rename BuildModeWrapper to ImplicitMatrixBuilder and add an extended constructor

ImplicitMatrixBuilder now has some more documentation and a second
constructor that takes all required arguments for setting up a matrix in
implicit build mode. So you can now create an ImplicitMatrixBuilder
directly on top of a default-constructed BCRSMatrix.
[BCRSMatrix] Avoid off-by one iterators in compress()

compress() uses iterators that are off to enable a *(++it) = ... idiom,
which already confuses me right now. That confusion will only be worse
when I look at the code again in half a year, so let's clean that up
right now.
[BCRSMatrix] Update maximum number of row entries in compress() on the fly

We iterate over all rows anyway, so avoid the additional loop.
[BCRSMatrix] Fix typo in setImplicitBuildModeParameters

This was obviously never tested - don't try to assign the overflow
fraction to the map holding the overflow entries...
[BCRSMatrix] Improve error handling for implicit build mode parameters

This patch adds checks to make sure the user has actually set valid
parameters before trying to allocate the matrix in implicit mode.
We use a negative value for the overflow fraction as an indicator for
this.

As part of the cleanup, this patch also makes sure that avg and
overflowsize are always initialized to a well-defined value.