Fix NULLIF semantics

NULLIF now correctly returns a result with the type of the first argument. For instance:

    NULLIF(1.0, 2) => 1.0
    NULLIF(1, 2.0) => 1

Previously, the type of the result was the common supertype of both arguments