GaussAlgorithm is not inherited from DenseDirectLinearSolver anymore.
Removed class DenseDirectLinearSolver.
Removed class DirectLinearSolver.
Removed class LinearSolver.
Made GaussAlgorithm a template.

The template arguments are matrix type and vector type. For new
matrix types it is necessary to specialize the template. This is
done for DenseMatrix as matrix type and double* as vector type.
Define Matrix::FP_T type for all matrices and vectors.

This is usefull for example to ensure that the underlying matrix and vector types are the same.
Correct CRSMatrix::getValue() return type.
Make functions in TriangularSolve template.

The forwardSolve() and backwardSolve() methods are independent of the DenseMatrix's underlying type.
Generalize GaussAlgorithm<M, double*> to GaussAlgorithm<M, M::FP_T*>.
Added test for dense Gauss algorithm.
Define Matrix::IDX_T type for DenseMatrix, used it in GaussAlgorithm.
Substituted fabs with abs in GaussAlgorithm.
Changed type of _perm array in GaussAlgorithm.
Reformatting.
Changed size_t to IDX_T in TriangularSolve.tpp.
Merge pull request #148 from TomFischer/CleanUpSolverStructure