BUG: interpolate: make interpnd.* objects pickleable

PR 172
GEN: interpolate: regenerate interpnd.c
TST: interpolate: add tests for 7d1ecbd42db
ENH: sparse.diags accepts one diagonal

This allows single diagonal matrices to be constructed as
`diags([1, 2], 3)` instead of `diags([[1, 2]], [3])`.
This is also more consistent with numpy.diag.
ENH: linalg: Added Lyapunov, Algebraic Riccati Equation Solvers with Tests.
DOC: update THANKS.txt
Revert "ENH: optimize/minimize: combine hess and hessp parameters" (#1617)

This reverts commit c5f12acf3910068c94d8caa5360e041bbcb47912.

Conflicts:

	scipy/optimize/minimize.py
TST: test L-BFGS-B with combined fun/jac and extra args
BUG: L-BFGS-B correctly handle combined fun/jac and extra arguments
TST: test extra arguments function and jacobian in TNC
BUG: TNC correctly handle combined fun/jac and extra arguments
FIX: drop multiplie imports of optimize in tnc
ENH: memoize gradient when calculated along with obj. fun. in TNC and L-BFGS-B

The `MemoizeJac` decorator added in `optimize` is used for caching the
value of the gradient when the latter is calculated along with the
objective function.
ENH: allow objective function to also return the jacobian in minimize

Add tests for this based on TNC and SLSQP.
ENH: jac is either a bool or a callable in minimize
Merge pull request #175 from dlaxalde/revert-ncg-hess

Revert "ENH: optimize/minimize: combine hess and hessp parameters" (#1617)
use canonical form of dense matrices across module
DOC: Updated README and docstring for the 3.0 version.
STY: stats: make boolean keywords in tstd/tvar use bools instead of ints.
Merge branch 'jpaalasm/lbfgsb_3.0' into master.

This updates the L-BFGS-B algorithm to version 3.0.  Closes #1514.

Reviewed at https://github.com/scipy/scipy/pull/165