Initial implementation of the sparse matrix.

@bsoetaer 
Tests pass when the contracts are disabled.
Why did you comment out many of these lines that assert_raise(MiniTest::Assertion)? I am assuming that it has to do with the contracts being included or not but what is your plan for these lines?