TST: sparse: clean up the test suite

Move indexing tests to appropriate classes splitting some of them into
parts. Remove duplicated tests. Remove dead code. Fix typos.
MAINT: sparse/lil: remove dead code
BUG: sparse/lil: more robust _slicetoseq implementation

The current failed for negative strides + start point past the end.
BUG: sparse/lil: allow single integer indices
TST: sparse: improve test corner case coverage
ENH: sparse/lil: allow shape (0,0) LIL matrixes
TST: sparse: fix some bugs in test_base
ENH: sparse/lil: simplify indexing code
TST: sparse: work around a bug in np.matrix
MAINT: sparse/lil: remove commented-out code
TST: sparse: more sparse-sparse assignment tests
BUG: sparse/lil: simplify __setitem__ and fix bugs in it

The sparse matrix code path always uses .toarray(), so it can be
scrapped.
BUG: sparse/lil: use isscalarlike instead

Also remove an indexing warning --- currently all code paths have this
efficiency issue...