Initial implementation of the sparse matrix.

@bsoetaer 
Tests pass when the contracts are disabled.
purpose of this method is to get a pair for each element in self only? Just a note that if selector is non_zero and v has a non-zero element where self has a zero element it will be missed. ie self = [1,0,2,0,3] v = [0,1,0,2,0]