Truedot

This is for Issue #748.

The only change is that `TrueDot` will return a sparse matrix in all cases as it was supposed to do. Before,  when it was called with a sparse and a dense matrix, it returned a dense matrix.

I also redo the tests since not every method was check.