BUG: sparse: fix bugs in dia_matrix.setdiag

- hide details of the internal dia_matrix data representation in
  setdiag(), so that behavior matches the other spmatrix types

- fix bugs in resizing self.data, which doesn't always have
  self.shape[1]==N

- add scalar broadcasting behavior to setdiag() for all matrix types
BUG: sparse/dsolve: detect invalid LAPACK parameters in superlu and bail out gracefully
BUG: SuperLU: fix missing declaration of dlamch

SuperLU 4.3 called some functions returning floats without declaring
them. On i386@linux call convention, this fails to clear floating point
registers after call. As a result, NaN can appear in the next floating
point operation made.
BUG: sparse: downcast 64-bit indices safely to intp when required

Downcast 64-bit indices to 32-bit intp when required, but check
whether this is a safe operation, to be sure.

ufunc.reduceat and np.bincount deal only with intp data type.
BUG: nonlinear solvers are not confused by lucky guess
TST: sparse: silence some deprecationwarnings

The code triggers these only on Numpy < 1.9
Merge pull request #3388 from pv/superlu-bug

BUG: SuperLU: fix missing declaration of dlamch
Merge pull request #3389 from pv/sparse-downcast

BUG: sparse: downcast 64-bit indices safely to intp when required
Merge pull request #3272 from pv/fix-setdiag

BUG: sparse: fix bugs in dia_matrix.setdiag
Merge pull request #3390 from argriffing/broyden-lucky-guess

BUG: nonlinear solvers are not confused by lucky guess
Merge pull request #3373 from pv/superlu-fix-lapack

BUG: sparse/dsolve: detect invalid LAPACK parameters in superlu and bail out gracefully