feat: add tournament selection
feat: add initializers, ZeroInitializer, RandomInitializer
feat: add evolutionary strategies to local search
chore: guard test imports by #[cfg(test)]
chore: split types and functions to separate module files
tests: let EqualTerminatingCondition remember matches to return even if no longer equal
tests: For local search test, wait 100 cycles after optimum found
feat: add AndTerminatingConditions that ands multiple conditions
chore: rename NoMatchForTerminatingCondition to NoBetterForTerminatingCondition