BUG: Remove bug where __div__ & __truediv__ didn't upcast dtype.
ENH: Sparse compatibility with NumPy dot, multiply, add, div, subtract.
TST: Tests for compatibility with NumPy ufuncs and dot.

Note that these tests only run if NumPy version is greater than 1.9.
BUG: sparse: enable right division in numpy_ufunc
TST: sparse: test __numpy_ufunc__ also for mixed dense/sparse operations
DOC: sparse: add a clarifying comment why rdiv is not inverse
TST: sparse: test __numpy_ufunc__ for right division and throw scalars into the mix
BUG: sparse: don't abort program with SIGFPE on integer divide by zero
BUG: sparse: fix elementwise division by sparse matrix to produce correct results
TST: sparse: fix up __numpy_ufunc__ tests, and throw complex scalars into the mix
BUG: sparse: fix elementwise division of int matrix by int scalar
TST: sparse: deal with precision issues in division tests, and check int division
BUG: sparse: restore support for unary ufuncs + fix up the test
TST: sparse: fix up invalid elementwise division test (0/0 -> nan, not 0)
TST: sparse: allow implementing spmatrix + scalar np.add an np.subtract
TST: sparse: skip non-passing tests on Numpy < 1.9
Merge pull request #2869 from pv/pr-2732

ENH: sparse: add Numpy Ufunc and dot overrides + fix

This adds support for __numpy_ufunc__ functionality to sparse matrices.
This has effect on NumPy >= 1.9.

These commits also fix a number of bugs in sparse matrix division. The
results now match dense matrix behavior.