Initial implementation of the sparse matrix.

@bsoetaer 
Tests pass when the contracts are disabled.
If this is the SparseMatrixBuilderTest shouldn't the factory be SparseMatrixBuilder?