implemented IfExpr codegen

There is a stub for ForExpr as well.
implemented ForExpr codegen

Also contains some minor tweaks to other code generator functions. It's time to
add configuration struct to the generate*Expr calls that allow the caller to
specify a resultVar blocks and if/for exprs should use, or indicate that no
reference to the result is required, thus allowing larger code segments to omit
generating result variables and the like.