SmartSolver Added

Added the smart solver, which checks the test matrix after every change.
Brute solver takes a very large amount of time, and was therefore
discontinued.