support while
- introduce while (doesn't work :s)
- promote variables into if/else/while blocks
- allow unary assign plus, minus, dic, sub shorthands