Implement cheaper kind inference using data debt

Loom already accepts sparsified datasets, simply filling rows in as they are read.
This pull implements cheaper kind proposal by accumulating `row.diff` instead of `row.data`.