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.
tests(tsp): move tests to proper modules, fix uses
feat(tsp): add 2opt perturbation for subsequence reversal
refactor(tsp): split to multiple files out of tsp.rs