Initial implementation of the sparse matrix.

@bsoetaer 
Tests pass when the contracts are disabled.
What are these for? May want to reconsider name as well as for a second I thought this was contract.rb