Modified the createSolutionVector function to use matrix operations
Additionally added a function to create the entire solution matrix.
This function, whilst currently active, is better suited for GPU usage.
[skip ci]
Using matrix operations wherever possible
Added support for multithreading
Moved simulation loop into BTCS to minimize memory allocation
Switched to Tridiagonal Coefficient Matrix
[skip cli]