Ignoring the first two roots of the equation for Z in the smallest one is zero or negative. There was a comment documenting that behavior, but it was not implemented.
Throwing NumericalProblem if no positive Z has been found or the number of roots is 2 or more than 3 (no check was in place)
Throwing NumericalProblem if the found molar volume turned out to be zero, negative, or NaN. (Replacing assert)
Added handleUnphysicalPhase flag (true by default). If false, the single-root case is not checked for critical state of the fluid (otherwise, Michelsen test for a mix of hydrocarbons does not work).