Restructuring the inheritance structure of matrix types.

This pull request 
- restructures the inheritance structure of matrix types (removed class MatrixBase),
- changed the implementation of DenseMatrix 
  + added template parameter for index type,
  + added assignment operator
  + added move constructor and move assignment operator
  + added a first test for DenseMatrix.
- added class template GlobalDenseMatrix (derived from DenseMatrix)
- changed the interface of CRSMatrix a little bit.