Compile currently-identical _object methods

Fresh methods have a parallel version with an implicit parameter giving
the self object. Treat these as separate methods named <name>()object,
but currently having the same bodies.
Use "factory method" inheritance

The factory method approach keeps "self" the same for all executable
code, ensuring that all methods and fields are defined (but not
necessarily initialised) before any actual code executes. This approach
provides essentially the standard classical semantics.
Fix generic parameters for factory inheritance
Compile ()object methods in JS
Add factory inheritance to JS
Add test for factory inheritance behaviour
Fix selfmethinherits test for factory
Make test harness delete .gct files