changed to a "pattern" based approach,

A matrix class type has a pattern, which determines what values exist,
and maps to the list of values.
Merge branch 'sparsity-pattern-split'