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