Fix updating of L-BFGS history

Updating of L-BFGS history was one iteration off which resulted in
incorrect descent directions and terrible performance.
Change step size on the first iteration in L-BFGS

Change initial step size so that the first descent direction in L-BFGS
is in fact the *normalized* steepest descent direction. Such initial
step size is also used elsewhere, for example in the original Nocedal's
L-BFGS code.