Merge pull request #4 from timholy/master

Fix paths
Various changes. The backtracking line search now also checks the curvature condition and extends the search step if necessary. The first Wolfe's conditions now uses a much smaller value in the evaluation. This avoids many terminations due to no improvement in line search. No improvement in the line search now terminates the algorithm without nan freakout message. Some changes that should improve performance. E.g. use of \ instead of inv()* in Newton's method. Change of convergence criteria in the BFGS algorithms to use Inf norm. Some cosmetic changes to the code and naming in line with Nocedal. Finally, changed trace to be more like Matlab by printing step size and convergence criteria.
Merge pull request #5 from andreasnoackjensen/Jensen

RFC: Various changes to BFGSs
Adds Levenberg-Marquardt search method.

Also adds top-level curve_fit() and estimate_errors() methods.

Still need to make some decisions about how to integrate this into the
optimize() method. My main concern is that the Levenberg-Marquardt method
expects a different form for the function F(x). With the other methods you
direclty pass the cost function to mimize, e.g.:
   F(x) = Sum_i |f_i(x)|^2
For this minimizer, you instead pass the vector [f_i(x)..].

For this reason, I wonder if there ought to be a separate leastsq(...) interface
for optimizers that expect this sort of signature.
Updating to latest load/require/include convention.
Merge pull request #9 from blakejohnson/levenberg

Adds Levenberg-Marquardt search method.
Updated README.

Also some minor cleanup.
Merge pull request #10 from blakejohnson/levenberg-docs

docs: Updated to reflect new `levenberg_maquardt()` method
Added proper show() and repl_show()
Revised simulated_annealing() to maintain a trace object

Cleaned up namespace handling
Started an automatic test suite
Cleaned up Nelder-Mead code
Revised Newton's method
Updated naive gradient descent code
Updated L-BFGS code
Revised optimize() interface
Updated grid_search() test
Updated BFGS and cleaned up tests
Move finite differencing into the Calculus package
Using the new OptimizationState() method.

Also adds LM to the run_tests script.
Merge pull request #11 from blakejohnson/levenberg-optimState

Use the new OptimizationState() method in levenberg_marquardt()