FastSerializer: Buffer output and write it only at the end

Use OSequenceOutputStream class to concatenate strings in a
Sequence<sal_Int8> buffer. And write data to file only at the end.

The design is a bit fragile, since all FSHelpers need to be destroyed
before calling FilterBase::commitStorage(). Otherwise data is not written.

Change-Id: I26b02335ef36011bfcda17484b560811d18c7657
FastSerializer: We already know the attribute value

Change-Id: I6996e15f99b94b50c1903092d7424a96339ccfaf
Remove mutex from OSequenceOutputStream; it's intended to be fast

Make the caller responsible for using it wisely.
AFAICS it's used only in FastSaxSerializer, so far.

Change-Id: I50d48fd7f3e6cdeb9e4637868da213b8171e542b
FastSerializer: Do not keep whole sequence in memory; write in chunks

Change-Id: Ibca65a2b8397358ac4013c8e5b53389ac6949e4d
FastSerializer: check for valid output stream in one place is enough

Change-Id: Id89fb1f0444331c2858a9795ae81dcdb875d3d2b
FastSerializer: Have OString version of write() too.

And remove characters() member function.

Change-Id: Ifcedbb6d969b7b057ff378d2fbce09c2dde5ac18
Set cell style name to the document directly, bypassing the UNO API.

Change-Id: I28decfdfd8248fb9b95416b9b269a4ffabcc6370
fastparser: avoid allocating un-used FastTokenLookup class.

This contained an rtl_Sequence complete with horror internal
allocator, caught red-handed serializing threaded loading to no
good purpose.

Change-Id: I837b2c17e4f70fd6a49bed33ad74a7d79f98f35c
Set rotation reference directly via internal API.

Note that the original code would first set the rotation reference value
stored in the Xf, then later unconditionally overwrite it according to
the border setting.  The new code only ports the second part.  Perhaps
there was a bug in the original code....

Change-Id: I15b6839e9a58e8070a43db70e1a88b42ed99f2d8
Store height array to RowHeightContext and reduce function arg counts.

Change-Id: I09b79bc76ffc55e25c24bbfa8f000f4a46df0a1c
Annotate FindEditCellsHandler.

Change-Id: Ib49a7a3eccee62e5496f7f19824631866e072b6a
FastSerializer: Remove escapeXml() creating OUString(Buffer)

Instead directly write the content.

Change-Id: I7b6db925348b879a013acbd2a76a80d590f721c0
FastSerializer: Avoid sequences where possible

Change-Id: I359ca9d3b766b71904e4199ebfbdbd5b203775cc
FastSerializer: Remove throw specs; this is not UNO implementation

Change-Id: I462f8ed89de48174ed7aa6e008709963bec50649
FastSerializer: Use FastAttributeList directly to write faster.

Change-Id: I28085d4e060bcf052e6aa97a0822a4d653d7c066
FastSerializer: avoid some more OStrings

Change-Id: I2d5dbe9adccdd231cc16a1f83a90a4adeb965c64
FastSerializer: Have own fast cache buffer implementation for XOutputStream

Previously comphelper::OSequenceOutputStream was used.

Change-Id: I4dc38c8c62422e59efa1071312497364cdf5be3c
Revert recent changes to comphelper::OSequenceOutputStream

Some of the changes could be wrong and we don't need them.

This reverts commit 784d4bea86d8cbb3a855e557c465ce50a049cefc.
This reverts commit 8524d5aba59148eef94859289f00ab6477e0e821.
This reverts commit 018f1deae884febbbe639c7ee46b45ce4807e9d3.
This reverts commit 8124fddc5803b4e104d4fc2456cb92cb030d9436.

We use our own helper cache class in FastSaxSerializer
since f736eba5a9df8645849a37b08d2764a5f495ab45.

Change-Id: Iaca6b5b11cb32595db4420a02fa72b0007cf6286
This was OString already; use it that way

Change-Id: Ia2268ce8a1e2111adb609c515e5bfa824afa66ce
FastSerializer: Simplify cache to be fixed sized buffer

This makes writeBytes(), which is called a lot, simpler and thus faster.
E.g. for ~15m calls, this saves ~110m pcycles.

Change-Id: I29d01a1a8651f668aff574e0f015cd2f018eb1cd