Initial implementation of the sparse matrix.

@bsoetaer 
Tests pass when the contracts are disabled.
I doubt this is the problem and I assume you accounted for it when you were testing this but nowhere in the submitted code do you set enable_contracts to true so it is still nil and none of the contracts are actually being called. This problem would manifest in a very similar way to the ensure block not being called except all the tests expecting MiniTest::Assertion would fail rather than a subset that would occur if ensure was not being called.