refactor(lib): Allow fitting whole population at once
The fitness function gets fit_population function. The default
implementation is going over fit() one by one, but it can be
reimplemented by specific types.
feat(lib): constraints along with evolutionary strategies
feat(lib): allow modifying fitness function in evolution_algorithm
chore: move population structs to separate module
feat(tsp): Remove with iteration functions
feat: split params out of PerturbationOperator to allow for non-'static PerturbationOperator
This means PerturbationOperators can now hold non-'static references.
Right away, utilize this in the Random2OptPerturbation for the TSPInstance.
chore: lock file for cargo
chore: make few improvements to plotting
chore: update the json specifications for plots
fix(tsp): few more tweaks
feat(plotter): add plotting of standard deviation
chore: switch 10 used instances
feat: add compute.sh for computing all data
chore: add jsons with plot definitions
feat(tsp): add binary ls, use 10k iterations instead of 5k