validate class members in validation pass

unary dot lowered in parser to this.member
no longer codegen's constructor/destrutor twice
index expression should return type correctly
loops allow empty conditions

eg 'while()' is valid. means 'while(true)'
same with 'for(;;)'

validate return type