code cleanup
Assigns default parent to all objects that don't specify parent
Added 'jsexpr' AST node type that just prints a string of raw JS code.  For use by the AST transformer and JS generator
Added generation for `super` calls.

- throws error when `destroy` super-call has arguments (cuz destroy methods can't have arguments)
- throws error when `super` call isn't inside a method
Implemented `parent` inheritance for objects
- Object/class construction is wrapped in a closure and passed into the runtime
  - runtime can thus control execution order of class construction, ensuring that super-classes are created before children
- fixed JS constructor functions to correctly invoke super-constructor