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