PAC model: improve robusteness of detection of non-optimising agents part

The method BinaryOpNode::getPacNonOptimizingPart() is not sufficiently robust. It may fail for expressions of the form (1-optim_share)*A*B, if the preprocessor reorders the factors.

This can be reproduced with tests/pac/trend-component-2-mce/example_det.mod, by replacing (1-gamma)*(.5*diff(y1)-.7*diff(y2)) with (1-gamma)*beta*(.5*diff(y1)-.7*diff(y2)) (adding beta as a 2nd factor) in equation eq:pac.

The solution is probably to create a new method ExprNode::decomposeMultiplicativeFactors() (similarly to ExprNode::decomposeAdditiveTerms()), and use it for detecting the non-optimising part.

Edited by Sébastien Villemot