Fix bug in if() when used in a surrounding expression
Fix bug in if() when used in a surrounding expression

The ternary generated by if() needs to be wrapped in parentheses to
isolate it from the surrounding expression.

For example, the expression:

    0 * if(datum.a > 1, 1, 2)

should always return 0 because it doesn't matter which number if()
evaluates to.  However, the generated code looks like:

    0 * datum.a > 1 ? 1 : 2

which is equivalent to:

    ((0 * datum.a)) > 1) ? 1 : 2

thus making the expression return 2.

Fixes the failing test introduced in the previous commit.

vega/vega-expression