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...