Pass empty strings instead of NULL to callback

Trying to reduce the chance that NULL will ever come up. Basically, the
less likely you are to encounter it, the better.
Change sparse_fn_t's return type to void
Update README.md
Add sparse_test.c