BUG: optimize: if line search fails, don't update position

Fix bugs in routines updating the current function value by what was
returned by a failed line search.
BUG: optimize: make _minimize_newtoncg use wolfe criterion line search

The Wolfe condition should guarantee better properties vs. stagnation.
Note that TNC (almost the same as newtoncg) also uses Wolfe conditions.

Fixes Trac #1778
BUG: optimize: do not use magic numbers in line search initialization

Set the old_old_fval to None, so that the initial step size is 1.0.
(Initialization with the magic number also leads to the same condition,
but it's better to be explicit.)
BUG: optimize/linesearch: _zoom() should indicate a failure if maxiter is reached, rather than returning a step size that doesn't satisfy the conditions
TST: optimize: add test for what happens when line searches fail
BUG: optimize: fix negative curvature search direction in _minimize_newtoncg

When the CG iteration fails on first iteration, the algorithm should
pick the steepest descent direction pk = - c grad(f) with c > 0. There
was a sign error here which made the choice to be pk = + c grad(f),
which caused the line search to always fail.
TST: optimize: add a test case where minimize_newtoncg used to fail
Merge pull request #507 from pv/linesearch-bugs

BUG: optimize: fix issues related to line searches