Performance mods

This modifies the patch to use a free function fastSparseProduct(). I'd appreciate if you could confirm that it performs on par with yours.

There is just one product that is not using this function, on line 488 of NewtonIterationBlackoilCPR.cpp, because it involves a row-major matrix (which is row-major so that it can easily be given to istl I think). At least that is what my debugger leads me to believe.

If there are any problems with this, please tell me. Since I did not use git rename the file content will be attributed to me I think, I'll try to redo this to place credit appropriately if you want me to (if we decide to do things this way).