Revised the bfgs kernel to restart BFGS when a local minimum is reached
Revised the thread pool to producer/consumer model
Enlarged default_num_generations from 100 to 300