Fixed premature evaluation of if condition (Closes #20).

Condition was being evaluated twice on if+else expression: expr:cond in
"if" production evaluates it but fails to parse remaining ast (because
of lack of "else"), then the next production "if/else" evaluates
expr:cond again.