Merge pull request #1881 from tschneidereit/master

Get rid of Arguments object creation in IonMonkey by removing ...rest uses
Merge pull request #1882 from tschneidereit/master

Optimize functions that show up in profiles
Bug 1103634 - Part 1: Emit call to asEquals for non-strict (in-)equality operators when at least one operands might be an E4X object

 Because those have to be compared structurally, so `==`/`!=` won't do.
Bug 1103634 - Part 2: Implement structural comparison for E4X types
Bug 1103634 - Part 3: Fix bug that caused XML#hasSimpleContent to throw in many cases during comparisons
Bug 1103634 - Part 4: Implement XMLList#descendants

Well, not really part 4 of this, but a by-product of testing.
Merge pull request #1883 from tschneidereit/e4x

Bug 1103634 - Use structural comparison for E4X objects
Check XML's [[Value]] property when comparing non-Element objects only

Not the other way around, where the `[[Value]]` isn't relevant at all.
Fix XMLList#contains

Needs to do `==` (with AS3 semantics) comparison between each child and the given value, instead of just using `indexOf` and hence object identity.
Improve implementation of XMLList's [[Put]] method to at least support setting named properties on single-item XMLLists

Everything else is *way* more complicated.
Implement {XML,XMLList}#normalize and XMLList#[[Delete]], and vastly improve performance of XML#deleteByIndex

One thing led to another.
Merge pull request #1885 from tschneidereit/e4x

More E4X fixes and implementation
Add Object utility function for creating property aliases in the public namespace
Make all methods on the XML class native

Also added type checking for many methods.

Still: 291 insertions(+), 393 deletions(-)
Make all methods on the XMLList class native

Same deal: 63 insertions(+), 222 deletions(-)
Fix slight bug in XML comparison algorithm
Re-implements AVM1 super and __proto__
Traslate all avm1lib classes to TS
Removes avm1lib
Fixes avm1lib-removal regressions