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*>.
Remove nonimplemented GaussAlgorithm<M,V>.

This cause the compiler to detect an error of instantiating a not implemented GaussAlgorithm.
Merge pull request #3 from endJunction/CleanUpSolverStructure

Clean up solver structure