do not iterate over all bookmarks in SwTxtNode::Update()

3f9872185e introduced new API for fast finding of marks to a specific text node,
so use that (code itself based on cb46aaf2d7).
This makes mailmerge faster (since it can create a huge document, and especially
with the change to use UNO bookmarks to mark starts of MM documents inside
the larger single document there can be a large number of marks).

Change-Id: I30ec69acf423e9a62fae5f5492ed8744cb727a56
actually use return value of GetUniqueSectionName() in SwDoc::UpdateSection()

Change-Id: I6d9ae98e900e5e42c5253ee9b2f71bec351b54d1
do not bother with nice unique names during mailmerge

When using a single document for all the generating MM documents, there can
be a significant number of sections/etc. , enough to make searching them
all in order to find a next nice unique name take a noticeable time. Since
it's very unlikely anybody will ever care about nice names after mailmerge,
just get some unique name in a fast way.

Change-Id: Id6b8d39a67529984cb93bb369f2c6eab401f1799
fix constness of SwFmtsBase::GetFmt()

And covariant return type while I'm at it.

Change-Id: Iab8459e73fa6743eae17094d9826c83b0f53c3f5
const

Change-Id: Ie2f4c5059a4160287690cf7a4e99472d9a575102
do not break encapsulation of SwFmtAnchor::GetCntntAnchor()

Change-Id: I0a320eb990f9a3b6800447a97a84c118239bae96
faster mapping from nodes to SwFrmFmt's anchored at them

The SwFrmFmtAnchorMap class provides reverse mapping
to SwFrmFmt::GetAnchor().GetCntntAnchor(), so that when code somewhere needs
to update SwFrmFmt's anchored at a position, it's not necessary to iterate
over all of them (which can be a large number e.g. with mail merge).

One special catch with the multimap of SwNodeIndex keys is that
the values of those keys change (whenever the node structure of the document
changes, indexes of nodes change as a result). This makes it impossible to use
any hashing container, as the hashes would change without the container
noticing, but multimap should work fine, as it just requires that the keys
remain sorted, and that is the case. Nevertheless, the old code in the two
converted places is intentionally left there in debug mode to verify the reverse
mapping is updated correctly.

I intentionally went with SwNodeIndex rather than SwPosition, as SwIndex
(the other component of SwPosition) was causing some trouble (see e.g. the
SwPosition comparison operator< , where two same positions are different if one
is registered and the other not) and it doesn't appear to be actually necessary.

Change-Id: I7f1768558f60155d4ba83c84aa7f9e34dc65ebf9
do not display missing data source always as "SOURCE"

Broken by cc6f43275a00b0aff2e60e70ee8032222a2c9610.

Change-Id: Ie870dea874327639460349b239525e4ce77dd8fe