Make item-item build sparsity configurable

Simplify the tests for similarity sparsity and symmetry when choosing the
neighbors to consider and make sparsity disablable.
Implement sparse item-item neighbor iterator
Make sparse neighbor iteration adaptive