Performance improvement by overloaded sparse sparse product.

Among many thing I have tested (i.e. added the diagonl matrix treatment, re-implementing the operator* of the AutoDiffBlock, rewriting the subset function, etc.) this one leads to significant performance improvement without change of code. There are only a few minor type corrections that apeared when I switched from ColMajor to RowMajor in the AutoDiffBlock. For now we stick to ColMajor since it seems to perform better, but we might come back to RowMajor in the future. 

For Norne this should give a 20% performance improvement (on my machine). 
There is still room for improvement. Nevertheless, the main design issue of using large matrices to modify cell values remains and probably cannot be fixed without a major code revision. 

This needs to be tested and we should discuss how to include the overloaded ConservativeSparseSparseProduct.h.