Refactored TFunction which was too complex.

Also fixed a global variables leak in prototype/class method
definitions, which occurred when local variables in methods shared
the name of an argument passed to the constructor.
Fix: omittable parens and statement modifiers.

Parens can be omitted when calling a method with at least one
argument, but there was a problem where the rewriter didn't stop
when encountering a statement modifier keyword (if, unless, while,
until or for).