Class name change after heavy restructuring

BaseGalerkinProdcut is neither a base class anymore, nor a template.
Thus we can use GalerkinProduct as class name for readability.
[Cleanup] Remove lots of obsolete code
Add wrapper object for new build mode

This allows to use the code from GalerkinProduct::calculate() to
be used during build stage as well as when recalculating without
modification due to the different access in BCRSMatrix.
Add galerkin product calculation code

with operator[] (as was with old build mode) and an additional
(implicitly derived) template parameter due to coarse and fine
matrix being possibly of different type with the new wrapper.
Use wrapper in matrix heirarchy building