Member constructors

Ok. So the following is broken:

```JavaScript
var hw = { set_up : function() { this.hw_foo = 1; } };
var my_hw = new hw.set_up();
```

This patchset attempts to resolve this:
- Careful inspection is required!
- This is not re-entrant - you cannot run 'new' twice within the same statement
- String() and Array() constructors are a bit different than other constructors (but that was the case originally too)

Tested existing tests + added a test for this case.