ENH: updated scipy/optimize/zeros.py to add differential_evolution
MAINT: changed name to _differentialevolution.py from _DEsolver.py
MAINT: refactoring _differentialevolution.py, specifically the DifferentialEvolutionSolver class
MAINT: refactoring _differentialevolution.py and test__differential_evolution.py
TST: added benchmarks for global optimizers, benchmark_global_optimizers.py.  Adding test functions for global optimizers to test_functions.py
DOC: adding to THANKS.txt, but also adding differential_evolution to  documentation: tutorial/optimize.rst
MAINT: refactoring _differentialevolution.py, test__differential_evolution.py, test_functions.py, benchmark_global_optimizers.py
TST: adding more test coverage to test__differential_evolution.py
ENH: added dithering to differential_evolution, made speed optimizations in _select_samples
ENH: refactoring strategies in _differentialevolution.py to remove boilerplate code. Improving documentation.
MAINT: refactoring mutate method in _differentialevolution.py
MAINT: changed the number of trials in benchmark_global_optimizers.py
MAINT: typos and BUG fix after refactoring _mutation (_differentialevolution.py), pep8 fixes to test_functions and test__differential_evolution
BUG: _differentialevolution.py - fixed python3 bugs, xrange doesnt exist, swapped for range
MAINT: _differentialevolution.py - refactoring mutation strategies. Adding tests for mutation strategies.
TST: adding more tests for scipy/optimize/_differential_evolution.py
BUG: fixed 2to3 problem in test__differential_evolution. func_name should now by __name__
MAINT: removing bounds_to_limits and limits_to_bounds functions, they were simple one liners. Also removed default callback, which was a placeholder function
MAINT: binomial, exponential, MACHEPS variables made local, i.e. _binomial, _exponential, _MACHEPS
MAINT: refactoring mutation, dithering and bounds into DifferentialEvolutionSolver.  DifferentialEvolutionSolver now uses bounds instead of limits array. Mutation and dithering checking is done in DifferentialEvolutionSolver instead of differential_evolution. This checking is done in a more pythonic way.