* complete threads function (tests FAIL)
Test fail due to indivisibility of the problem into threads. Test is turned to ProcessingType.THREADS!. On ProcessingType.SEQUENTIAL all test PASS.
TODO: make sure that len(problem) is divisible by num of threads. It can be less threads for small problem.
* fixing bugs in linear_algebra_utils, properly adress chunks to threads
* the refactor of the ThreadsLinearAlgebraUtils
* set test to execute both sequential and threads processing types
* Delete unnecessary lines tests.py
* rename scalar_matrix_multiply to scalar_vector_multiply
* Add choice between sequential or parallel(threads) processing
The LinearAlgebraUtils class has been changed to abstract class.
* remove needless imports and move the functionality from constructor to the function
* add ProcessingType class for a more transparent selection of methods
* the refactor of the assign_method
* rename the assign_method method