Transform/extension methods

New phase ported: extension methods
No reason for this. `tailrec` should run before `extmethods`