TYP: sparse.pyi
A start to typing sparse stuff, tried to do this without touching the cython code, hopefully some cleanups possible once typing somewhat specified.

cc @jbrockmendel, one annoying piece going on here is the abstract base class `SparseIndex` - it functions entirely like an interface, and so has nothing but abstract methods. Currently, in `cython` only `__init__` is defined for the base class, so the current typing with multiple methods in the base class is a bit of a white lie. We could just add all the methods to the base class and have them raise `NotImplementedError`, but not sure if that's just unnecessary code bloat since it works as is.
LGTM; i think we've gone the white lie route elsewhere but not sure where off the top of my head thanks @mzeitlin11 