feat: add PatternPerturbation Move by +/- d in random single coordinate.
feat: add uniform constructor for RandomDistributionPerturbation
feat: remove min, max from bounded perturbation
feat: add BoundedPerturbation applies bounds on real numbers when performing the perturbation.
feat: add RandomDistributionPerturbation For vectors of reals, perturb by a random distribution with expectation in 0.
tests: move all tests to separate submodules
chore: split types and functions to separate module files