fix `myObj.constructor(a, b, c)`

by breaking `new MyClass([a, b, c])`, but making `new MyClass(a, b, c)`
now do what you expect. Instead of re-using the same function that's
called externally to instantiate the class for the actual prototype
extension, have a separate `alloc` noop just for actual prototype
extension, and have a similar `_superalloc` noop when subclassing.

add test case for `.constructor`, and change test cases for init to
expect the new behavior of `new`.