[backend] rename dense backend to simple backend

* rename directory and headers
* rename classes
* rename and update test
[backend/simple] start implementing a sparse matrix for the simple backend

The idea is that we want to store simple CSR matrices, just using
three vectors and then we can exchange these vectors with other libs
like superlu, oder scipy. This matrix will use the same storage as the
SimpleVectorContainer or the dense SimpleMatrixContainer
[test] update the tests to check the dense and the sparse simple matrix backend
[backend/simple] according to the new interface the backend knows about the pattern
[backend/simple] add the sparse matrix to the simple family
[backend/simple] fix and finish implementation of simple sparse matrix
[cmake] add sparse.hh to header list in cmake
[backend/simple] fix copy constructor of sparse matrix
[backend/simple] fix N(), e.g. number of rows
[backend/simple] factor out inner product of sparse matrix row & vector
[backend] allow the user to set the index type (aka size_type) of the simple sparse matrix
[bugfix][backend] fix mutable base() call of simple sparse matrix
[test] fix integration order in simple backend test
[backend/simple] allow the user to set the index type (aka size_type) of the simple sparse matrix
[bugfix][backend/simple] fix mutable base() call of simple sparse matrix
[test] fix integration order in simple backend test
[backend/eigen] start reimplementing the eigen backend

- add unified header backend/eigen.hh (like for the other backends)
- move eigen related headers to a new subdirectory
- add test for eigen backend
- implement vector backend
[backend/eigen] adhere to convention for double-inclusion-protection
[backend/eigen] add fallback version and deprecation warning for old eigen vector backend header
[backend/eigen] implement eigen matrix backend,

... compiles, but untested