Initial implementation of the sparse matrix.

@bsoetaer 
Tests pass when the contracts are disabled.
Returns a matrix of size n x 1 each time now. The old one returned a matrix that was addable/multipliable with the current matrix. New one works for Matrix[[1],[2],[3]] + Vector[4,5,6] but not for Matrix[[1,2,3]]  + Vector[4,5,6]. Similar but opposite for multiplication. Are you making the design choice to only allow vectors to be added to single column matrices and only single row matrices to be multipliable by vectors?