Transform/extension methods

New phase ported: extension methods
It's probably a good idea to add a disclaimer to a pull request that contains code that compile, but has not yet been run :)