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: sparse: The dtype argument to the dok_matrix constructor was not handled correctly when the input data was a list of lists.
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
BUG: sparse: coo_matrix.todia() would fail when the matrix was all zeros.
Merge pull request #511 from WarrenWeckesser/dok-ctor-bug

BUG: sparse: The dtype argument to the dok_matrix constructor was not handled correctly
BUG: partial fix to bug 1042, lets sparse.multiply work with vector array (e.g. array.shape = (6,)).
ENH: Added scalar multiplication to spmatrix.multiply method.
DOC: added docs for my previous commits.
ENH: Increase parity with numpy.multiply, sparse.multiply now broadcasts row vectors and scalars like numpy.array.
ENH: io/matlab: avoid one data copy in writing zlib compressed data
ENH: io/matlab: avoid keeping data copies in memory in GenericStream
ENH: io/matlab: avoid making copies of zlib compressed data when loading files
MAINT: integrate: fix a couple typos in the 'quad' function: one in the docstring, and one in an error message
DOC: io/matlab: update comments in code
TST: io/matlab: make structarr benchmark runnable + check with compression