Added hillclimbing.
Lazyness doesn't work well with monads. Switching to a fixed number of iterations.
Refactor
Added iterated search and simulated annealing.
Fixed partial function.
Tidied up metropolis and simulated annealing.