doc: dump PlcfHdd (initial support for headers / footers)
doc: fix dumping header/footer text in LO-produced files
doc: test header dumping of both MSO and LO-generated doc
PlcfSed: use retrieveCPs
PlcfandTxt: use retrieveCPs()
PlcfandRef: use retrieveCP()
PlcfSpl: use retrieveCPs()
PlcfGram: use retrieveCPs()
PlcFld: use retrieveCPs()
unused parameter
retrieveText -> retrieveOffset

So finally we have retrieveOffset to look up text based on raw byte
offsets and retrieveCP to look up logical character positions.
retrieveText tried to do both, without success.
PlcfBkf / PlcfBkl works with CPs as well
PlcfHdd is already implemented
GroupShape: implement dumpXml()
doc: dump header drawings
msodraw: fix reading non-complex props after complex ones

For non-complex properties, the situation is easy: there is an array of
record headers, and the value is part of the header as well. The old
code assumed that the complex payload (the size of it is specified by
the value in the header) is right after each header, but it turns out
that the stream first contains all the headers, then the payloads.

Note that in case the only complex property is the last one, then the
behavior is unchanged.

A reproducer for this can be a watermark-enabled doc file produced by
Word, and LO's DffPropSet::ReadPropSet() does the same.
msodraw: dump gtextUNICODE
msodraw: dump gtextFont
msodraw: dump wzName
dump PChgTabsDelClose and PChgTabsOperand