fix `myObj.constructor(a, b, c)` with private allocator noop

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`.