refactor: pass rng as argument Instead of having the Rng stored inside the structs, pass it through the functions. This means it's no longer necessary to pass perturbations etc. as mutable.
fix: tournament selection in case last wins returned wrong index
feat: add best selection
fix: return proper indices from tournament
chore: move env to codes/eoa_lib
refactor: use evaluated population in selection
chore: update explanation comment
feat: add tournament selection