Make solver algorithm configurable.
Add UI for choosing solver algorithm.
Refactor solver service to use persistent worker.
Refactored solver code into separate files.