feat: add new terminating conditions (or, lower than, maximum cycles)
chore: remove unused imports
feat: add CloserThanTerminatingCondition
refactor: abstract LocalSearch stats into LocalSearchStats
refactor: extend local search to accept any inputs Instead of accepting only BinaryString, accept anything. Extend the operators to accept anything.
chore: split types and functions to separate module files