Initial implementation of the sparse matrix.

@bsoetaer 
Tests pass when the contracts are disabled.
Is this really a sparse matrix form? they are hashes so they have less space requirements but i don't think they are very good for operations and functions.