Adding our own simulated annealing

Added generate_neighborhood and random_neighbor functions
Neighborhood creation is now scalable for increased exploration early on
Runs slow but is going in the right direction, similar results to CG so
far.