ENH: reshape sparse matrices

closes https://github.com/scipy/scipy/issues/3507

Before this PR, sparse matrix reshaping raised `NotImplementedError` except with the `lil_matrix` format.

The coordinate conversion implementation is due to @WarrenWeckesser at http://stackoverflow.com/questions/16511879 so please do not merge until he approves.

The test added to the base class is modeled on the only existing sparse matrix reshaping test -- the `test_reshape` test for `lil_matrix`.
Thanks @larsmans I've strengthened the test according to your suggestion.  Do you think it would be worth adding a `may_share_memory` for sparse matrices, whose implementation checks for memory sharing among any of the arrays of the two sparse matrices?  I'm not sure how this would work in some complicated cases, for example with `lil_matrix`:
```
>>> a = [1, 2]
>>> b = [3, 4]
>>> X = np.empty((2,), dtype=object)
>>> X[0] = a
>>> X[1] = b
>>> 
>>> Y = np.empty((2,), dtype=object)
>>> Y[0] = a
>>> Y[1] = b
>>> np.may_share_memory(X, Y)
False
>>> X
array([[1, 2], [3, 4]], dtype=object)
>>> Y
array([[1, 2], [3, 4]], dtype=object)
>>> X[0][0] = 0
>>> X
array([[0, 2], [3, 4]], dtype=object)
>>> Y
array([[0, 2], [3, 4]], dtype=object)
```