ES6: Add Array.prototype.find and Array.prototype.findIndex

See ES6 spec (Oct 2014 draft) sections 22.1.3.8 and 22.1.3.9.
ES6: Add IsConstructor(arg)

See ES6 spec (Oct 2014 draft) section 7.2.5.
ES6: Add Array.of(items...)

See ES6 spec (Oct 2014 draft) section 22.1.2.3.
ES6: Update behavior of accessing indexed values.

 (Never walk the prototype chain with out-of-bounds access, return Undefined instead)

The desired behavior is critical for asm.js to work efficiently; it needs to be able to assume that it will never crawl the prototype chain of its buffer, even if the buffer happens to have been neutered and a get/set becomes out of range. See also: bug# 829896
ES6: Add Number.EPSILON
ES6: Add Number.MIN_SAFE_INTEGER and Number.MAX_SAFE_INTEGER
ES6: Add Number.parseInt and Number.parseFloat
ES6: Add advanced math functions.

The following functions are added (ES6 draft 2014-10-14)
Math.acosh() 20.2.2.3
Math.asinh() 20.2.2.5
Math.atanh() 20.2.2.7
Math.cbrt() 20.2.2.9 (cube root)
Math.cosh() 20.2.2.13
Math.expm1() 20.2.2.15 (exp minus 1)
Math.hypot() 20.2.2.18
Math.log1p() 20.2.2.21 (log(1+x))
Math.log10() 20.2.2.22 (10-base log)
Math.log2() 20.2.2.23 (2-base log)
Math.sign() 20.2.2.29
Math.sinh() 20.2.2.31
Math.tanh() 20.2.2.34
Math.trunc() 20.2.2.35
Make sure GenericNaN is available for math functions
Feed appropriate math functions to IonMonkey
Bug 995673 - IonMonkey: Don't remove MToXXX instructions when an object flows through
Bug 946969 - Ionmonkey (ARM): correct AbsI, integer absolute value
Align nomenclature with generally used term NotSigned instead of Unsigned
ES6: Add Map.prototype.forEach and Set.prototype.forEach and required iterators for these functions.

See ES6 draft 2014-10-14 23.1.3.5 and 23.2.3.6
ES6: Add Binary and Octal numeric literals (0b... & 0o...)

See ES6 draft 2014-10-14 11.8.3
Implement extensible typed arrays
Back out "Implement extensible typed arrays" for JS engine bustage.

This reverts commit 7fd2c831fbea69e5620706ef02835f4f8ddc2d7c.
Merge branch 'Harmony-work'