Switch to maintaining the inverse Hessian in BFGS.
Restructure BFGS options for reuse in LBFGS.
Factor out the Quasi-Newton update into its own representation to prepare for L-BFGS.
Implementation of L-BFGS.
Enable L-BFGS in command.hpp
Added basic unit test for L-BFGS.
Merge branch 'develop' into feature/lbfgs

Conflicts:
	src/stan/common/command.hpp
	src/test/CmdStan/optimization_output_test.cpp
Add code documentation for the BFGS support functions.
Unit test CubicInterp function.
Add unit test for WolfeLineSearch().
Add some more function documentation for BFGS.
Remove unused (and not particularly desirable) back-tracking linesearch method.
Remove unused template parameter and add more function documentation to bfgs.hpp
Check return code of WolfeLineSearch in unit test.
Remove BFGS line search support functions from anonymous namespace since we're unit testing them seperately.
Check that the strong Wolfe conditions are satisfied in the line search unit test, also correct some function documentation.
Add a convergence test based on the relative change in the objective function.
Change the relative convergence parameter to be scaled by the machine precision.

Also, updated the tolerance argument to use lexical cast.
Consolidate BFGS-based optimization parameters.  Also, add a new convergence criteria.
Merge branch 'develop' into feature/lbfgs