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