Make add_dense_scalar and mul_dense_scalar const correct
Implement more member methods in DenseMatrix class

Following methods were implemented:
* `add_scalar()`
* `mul_scalar()`
* `transpose()`
* `submatrix()`
Implement wrappers for transpose, submatrix, mul_scalar and add_scalar
Refactor `submatrix_dense()` function

* Allow for extracting row vectors and column vectors.
* Make column and row numbering start from zero as done elsewhere.
Add tests