Implement XMLList#hasOwnProperty

Fixes an exception in Ant Karlov's Santa game. Also, this is definitely used by a lot of content.
Don't ignore flags when compiling multinames in AVM2 compiler

Otherwise, E4X attribute parts of queries are compiled to normal names: `xml.@foo` is compiled to the same JS as `xml.foo`.
Take flags into consideration when converting MultiNames into QNames

The previous patch made the compiler respect flags, now the E4X parts of the runtime should, too.
Take URIs into consideration when comparing QNames in XML::descendants

Contains some refactoring of how QNames work, too.
Support delete operation on XML objects

Also included: some slight optimizations and a couple of unrelated TODO notes.
Fix calling prototype methods on XML and XMLList
Implement the `+` operator overload for XML and XMLList
Support numeric indexing in {XML,XMLList}.child()
Fully serialize XML and XMLList objects in toString if they contain complex content
Merge pull request #1879 from tschneidereit/e4x

Fixes to E4X support