Wrote tests for SimulatedAnnealing and IntermediateRecombination.
Also fixed both algorithms and made to so they take in
a clojure/fuction for decrease and inBounds.