Refactor hc + fix a bug in crossover

1) Refactor/simplify hillclimbing

2) Make crossover compatible with using widen search (option -T1)

3) Fix bug in cross_top_three (partial_sort was using num_to_make instead of num_to_sort)