sw: add CharInteropGrabBag uno property to characters

Change-Id: I2c6d8b1e4ef6df6a6662d5db89e67e5fba3c6ade
sw: Add support for different grab bags at PropertyMap.

Now there are two types of grab bags, for character and paragraph
attributes.

Change-Id: I41362358cd2765e5642499520d94f23f2380631d
fdo#64232: Add font theme info to CharInteropGrabBag

The attributes w:*Theme in the rFonts tag are saved to the character
InteropGrabBag so they can be saved back to the document on export.

Font attributes are also pushed into the grab bag because they will
be needed to check if the user has modified the fonts while editing
the document.

Change-Id: Ib247845a2d5543823798e1bbd8ed1958a5d9e884
fdo#64232: Save font theme attributes back to the docx

Font theme attributes were saved to an InteropGrabBag on import, and
they have to be saved back to the document when exporting to docx.

If the user modified the font in a text fragment during edition, the
theme attribute should be discarded in favour of the font attribute.

The attributes in the grab bag are processed in the last place so we
can compare the font attributes with the original fonts to know if
they have changed.

Change-Id: I2502b4aa96213e74b46fccd1a20f99421f7cf98b
fdo#64232: Fix and preserve eastAsiaTheme attribute

The attribute eastAsiaTheme was not being processed properly (the
derived theme font was being assigned to complex-script instead of
eastAsia), so this patch fixes that and it also preserves the value
of the theme itself.

Change-Id: I1a91ab2080eb2bc79f41fda9ae4bf7afb05f69a3
fdo#64232: Save font theme attributes in rPrDefault

The default values for run properties are stored in the styles.xml
file, in the <w:rPrDefault> tag. The process of this tag is slightly
different from normal <rPr> tags.

First, we fix DocxAttributeOutput::OutputDefaultItem to be able to
output the contents of the character grab bag.

Second, we fix StyleSheetTable::applyDefaults to read the property
values using the GetPropertyValue method instead of using an iterator
directly, because the former creates the grab bags and returns them
as properties while the latter returns all the properties individually,
including those that should be inside a grab bag.

Change-Id: I91254ba20fd9ca5a1b02afb587f52a449a215d6c
fdo#64232: Unit test for font theme attributes preservation

The unit test checks three cases:
 * attributes in run properties
 * attributes in default run properties
 * attributes in style definitions

Change-Id: Ie3224f41bd29e8b258dbd6823b7c9549e1ef5b1e