Fix Function.bind to use newBoundFunction...

...instead of newBoundFunctionObject

Basically, newBoundFunctionObject returns an incomplete object (without a prototype, __prototype__, etc.)
Fix Object.defineProperties to only enumerate over enumerable
Fix: "[object Object]" (Should be a SyntaxError)
Fix: Function("abc, def", "ghi", ...)
Fix parsing: body, parameters => parameters, body

We were parsing in revese order...
Fix: Function("z;x", ...)

Should throw a SyntaxError
Fix: Function(null)

Should throw a SyntaxError for any keyword
Fix: Function.prototype.toString (Should not be generic)
Remove superfluous test
Fix Function.prototype.call .length
Fix .length property of functions via .bind
Add test for .binding something that is not callable
Add caller and arguments properties to functions via .bind
Allow .bind to bind [[Construct]]
Handle non-numeric arguments to new Array properly
Fix: Array.isArray.length = 1
Fix: Array.prototype.sort.length = 1
Test the genericity of Array.prototype.indexOf
Fix NaN/+0/-0 comparison in Array.prototype.indexOf
Fix NaN/+0/-0 comparison in Array.prototype.lastIndexOf