Fixed bug where invoking methods without specifying `self` would not take advantage of Javascript's automatic `this` binding

- e.g. method() --> self.method() --> this.method(other)
- method call marking is moved to a transformation pass that is after identifier resolution
  - the latter phase was responsible for inserting `self.` when appropriate
Fixed bug when generating javascript for angl object.  I was using a "jsfunccall" AST node as a statement, but the generateStatement function couldn't handle it.
Fixed/implemented more of object compilation

- fixed bug where `$initproperties` wasn't calling the super-class's `$initproperties`
- changed order of output to: $initproperties, create event, destroy event, methods
- fixed construction of prototypes to properly set the JavaScript `constructor` field
- added copying of static properties from parent child class/object
Implemented $AnglObject, the super-class of all Angl objects
Fixed require() module paths that I forgot to start with "./"
Stopped using `strings` module in runtime.  It doesn't seem necessary; strings is more useful with the compiler
Added GameObject, and updated AnglObject and object creation logic

- all objects/classes now contain a list of all direct subclasses/child objects
- classes/objects that inherit from GameObject are now specially-initialized to keep track of all their instances
- instances of GameObject add themselves to the set of instances that's stored on the object/class.  This is used for `with()` loops and the arrow operator.
Added more support for `with` loops, though still not complete