Initial implementation of the sparse matrix.

@bsoetaer 
Tests pass when the contracts are disabled.
You appear to be right - ordinary enumerables do have each_with_index, according to the docs.