Fix TrilinosWrappers::SparseMatrix::add(factor, other_matrix).

As pointed out by Ignacio Tomas in the mailing list, the addition of a Trilinos sparse matrix on a matrix with more extensive sparsity pattern lead to an error when done in parallel. The reason is that the previous check whether matrices are filled (and consequently using the local indices of matrices) was not enough in MPI: There, one can have different numbering in column indices also when the locally owned ranges are the same due to the off-processor coupling over matrix columns. This has been fixed.

Also, this commit fixes the case when the matrix to be added contains some more entries that are not in the sparsity pattern of the calling matrix but happen to be zero.
Can you use a static_cast ? It is easier to find where we did a cast that way.