Made ExtensionMethods work as an InfoTransformer

The previous version of ExtensionMethods added extension methods manually,
in the companion objetct scope, using enteredAfter. Extension methods therefore
had to run before pickling, so that other modules would see the generated extension methods.
This is suboptimal, for two reasons; (1) Mixin is very much like extension methods, yet it
has to run after pickling. (2) The pickling info gets larger than it has to be.

With this commit, extension methods are added as an InfoTransformer. So extension methods
now should run after pickling.