Make if statements more consistent with other multi-part methods

6dad7b2 This requires parentheses around the arguments to `if` and `elseif`.

The next step to making if statements more consistent would be to allow code like this:

    var trueblock := { print "true" }
    var falseblock := { print "false" }

    if (true) then (thenblock) else (falseblock)

But that seems more difficult due to the fact that `ast.ifNode` doesn't store blocks for the `then` and `else` blocks, it stores a list of statements.