Work around IE's normalization of style attributes by abusing XML parsers

ve.parseXhtml() takes HTML that is also valid XML, and abuses
an XML parser to shadow the style and bgcolor attributes with
data-ve-style and data-ve-bgcolor.

ve.serializeXhtml() takes a document created with ve.parseXhtml()
and undoes the shadowing, restoring the attributes' original
values.

This is necessary because IE corrupts the values of the style
and bgcolor attributes by normalizing them. The original values
of these attributes are not accessible in any way that I could
find other than by using an XML parser.

These functions detect whether the browser bug is present,
so shadowing is not performed in compliant browsers.

Change-Id: I0fb47f7c91f6130788611466f72aa9bdff249b5f
Merge "Work around IE's normalization of style attributes by abusing XML parsers"