Removed unnecessary function (never used).

This was part of a recursive algorithm for building expressions, but
removed in favour of trees/heaps.
Added support for logical expressions and if statements.

Precedence in operators may not be correctly handled, need more testing.

If statements currently assume either a scope or single statement following
it, as per normal C semantics. This lets the "if else" component naturally
support "else if" as if the next "if" were a single statement.