Initial implementation of the sparse matrix.

@bsoetaer 
Tests pass when the contracts are disabled.
Unary minus was useful for implementing subtraction.  Unary plus is there for symmetry.