Initial implementation of the sparse matrix.

@bsoetaer 
Tests pass when the contracts are disabled.
True - the '2' methods probably shouldn't even take selectors, as the only meaningful selector for the vector is :non_zero.