Eng 7046 min max inline string

I would not have added this overhead to Agg since it only applies to Min and Max.
It would have been enough to change just finalize to:

    virtual NValue finalize(ValueType type)
    {
        m_value.castAs(type);
        return m_value;
    }

and save all the other changes for MinAgg and MaxAgg.
Those changes could be duplicated like all the other common code in MinAgg and MaxAgg  -- OR you could add a new base class named MaxOrMinAgg or StringAgg that deals with ALL the inline/outline issues.

If you defined "StringAgg", you could have trivial leaf classes MaxStringAgg and MinStringAgg and use them instead of MinAgg and MaxAgg for strings, and then you could simplify MinAgg and MaxAgg as trivial subtypes of Agg and use them only with numeric types. Sounds speedy!