Added a flag for updating quasi newton Hessian update on rejected steps.
(LSR1 needs to be updated more often than LBFGS).
Reset LBFGS framework to its original (i.e. removed all debugging lines)
Added option to update quasi newton approximate hessian on rejected
steps.
Added unrolling LSR1 formula for debugging.
Changed indices in LSR1 hessian product.
Cleaned all debugging prints.

Scaling option is not recommended yet. It needs to be checked.
Changed max_iter option to max_inner_iter to avoid confusion and remove
the option on the number of outter iteration.
Adjust the criterion for storing the (s,y) pairs when using a scaling
factor.
Fix a bug in the magical steps.
Updated non monotone parameter to 10 iterations.
Redirected logging printing to file if requested in the options.
Set pgnorm to pg0 before testing convergence.
Merge branch 'sylvain-lbfgs' into lsr1-merge

Conflicts:
	nlpy/optimize/solvers/auglag2.py
Added in drivers for LSR1 versions of the augmented Lagrangian solver.
BQP bug fixes for the case of negative curvature detected in CG.
Reintroduced new idea of fixed and free variables - somewhat faster for large QPs
Change default number of pairs in LSR1 and update stalling status to -3
Add npairs option to auglag driver
Fix a bug when infinite curvature is detected
Modifications to quasi-Newton Jacobian interface to mix sparse and dense constraints easily.
Fixed a bug in matvec computation.
Added a driver for LSR1 + Broyden approximation.
Fixed numerous bugs in array sizing + added a new version of the direct Broyden update.