feat(binary_string): add single bit perturbation, flip perturbation
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.
refactor: do perturbation in place instead of cloning
feat: add mutation and combined perturbations
chore: move env to codes/eoa_lib