Added specialised sparse matrix multiplication if both matrices involved are sparse.
Definitely not the best algorithm, but it takes some advantage of the sparseness at least.