Renamed GaussAlgorithm::execute() to GaussAlgorithm::solve().
Added method GaussAlgorithm::solve(..., ...) and a test for the method.
Extend TriangularSolve functions by VEC_T template param.
Add DenseMatrix/DenseVector multiplication and GaussAlgo test.
Add DenseMatrix/DenseVector multiplication via overloading.

Modify FP_TYPE* call too.
Generalize GaussAlgorithm class to arbitrary vector type.

Conflicts:
	MathLib/LinAlg/Solvers/GaussAlgorithm.h
	MathLib/LinAlg/Solvers/GaussAlgorithm.tpp
Generalized GaussAlgorithm::solve() and overloaded it for double*.
Added GaussAlgorithm::solve() with two arguments to fullfill the interface.
Changed test tolerances, renamed execute -> solve.

Changes in TestDenseGaussAlgorithm:
- Renaming execute() to solve() due to interface changes in GaussAlgorithm.
- Changed test tolerances to std::numeric_limits<float>::epsilon().
- Added test for GaussAlgorithm::solve(..., ...) and template argument DenseVector.
Using std::begin(v) /std::end(v) in DenseVector output operator.
Added second parameter to GaussAlgorithm constructor.

Using the second parameter the user can give options
to solvers for systems of linear equations. The aim of
this commit is to fulfill the interface.
Changed the order of parameters of GaussAlgorithm::solve().
Make comment to constructor of GaussAlgorithm more clear.
Substituted NULL with nullptr to be more clear.