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
(cherry picked from commit 80dd016d8e84a682ee40853d4cd752e4c68f5f85)