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`.

differs from #10 in that instead of a public `.alloc` property on the resulting Pjs class, uses a private closured `alloc` noop and another private closured `_superalloc` noop when subclassing.

Note that this is behaviorally different when creating the prototype of a new Pjs class when subclassing a non-Pjs class: #10 will call `new` on the constructor of the non-Pjs class, whereas this will essentially `Object.create()` the `.prototype` of the constructor of the non-Pjs class.