Make BlockClosure work with some constructors

Some JS functions expect to be used as constructors; these functions
usually have their prototype property set to something other than
Object, and they expect that you'll call them like this:

    var myVar = new constructorFunction(someArguments...);

I don't know of a way in Smalltalk to call these kinds of functions, so
I must step down to JS to do it. And for a while there's been a few
methods on BlockClosure to do it for you, but they only accept at most 3
arguments.

So, what if you want to call a constructor function with 4 or more
arguments? Before you'd probably just add a new message to BlockClosure
that accepted more arguments. But now you can use

    BlockClosure#newWithValues:

This message accepts an array (well, really it should accept any
collection that can be turned into an Array) and will return an object
after applying the contructor function to it. Here's how you'd use it:

    | something |
    something := constructorFunction newWithValues: { 1. 2. 3. 4 }

Here's how it works:

1) I create a new function object.
2) I set it's prototype to be the prototype of the constructor function
   you're calling.
3) I create a new instance of the object created in step 1.
4) I `apply` the constructor function to the object, and pass in the
   arguments you sent to newWithValues:

The key to this is step 3, where the interpreter assigns whatever is in
the blank function object's prototype property to the newly created
object's internal [[prototype]] property. The internal property is not
accessible to us, and the interpreter only sets it from a call to "new",
so I as far as I can tell I have to do this.

I got inspiration for this from StackOverflow[1], after spending a lot
of time trying to figure out how the new keyword works.

[1]: http://stackoverflow.com/a/6069331
Fix the comment of newWithValues: and add a test

I've added a test to ensure that `BlockClosure#newWithValues:` will not
silently consume errrors if the argument list is wrong. I've also
updated the comment of `newWithValues:` to try and fit with Amber's
comment guidelines.
Merge pull request #489 from kpullen/js-function-constructors

Js function constructors