Refactor how SparseEntryStorage is used; make room for merge_similar

The 'merged_with' method is now named 'merge_dissimilar', because there
will be a parallel 'merge_similar' method.
Add tests for LabelSet and SparseEntryStorage