fdo#57197: sw: check that cells are still alive ...

... before firing events from them; use a thread-safe WeakReference.

(regression from 76c549eb01dcb7b5bf28a271ce00e386f3d388ba)

Change-Id: Ie060d27cc44415e9a75b75027f5510577ac17a6e
fdo#57197: sw: fix crash on Undo of table row insert on 1-row table

... with accessibility enabled: the SwCellFrms are deleted, but the
entry in the SwAccessibleMap::mpFrmMap is not removed, because Dispose
returns early since the connections to the nodes have been severed already.

This then crashes in some questionable code that iterates over and uses
the frame pointers in mpFrmMap that was added in
76c549eb01dcb7b5bf28a271ce00e386f3d388ba (where previously only the
WeakReferences were used out of that map).

Change-Id: I13885c6ab9a92e34e95925f275e15c20fdc600b7
sw: don't dispose SwAccessibles in SwRowFrm::Cut()

This does not appear to work so well: for a row with multiple cells,
when the second cell frame's SwAccessible is disposed it will send an
event, and the AtkListener will then request all children of the row,
and this causes a new SwAccessible to be created for the first cell
frame that was disposed previously.

Unlike most other events, Dispose events cannot be sent delayed.

The SwAccessibles are disposed from ~SwCellFrm already, that should be
sufficient.

Change-Id: I6da72605e5386540f8d82535fca151e97d70869f
AtkListener: consistency check is too strict

Apparently it can happen in JunitTest_sw_unoapi that between the
getAccessibleChildCount() and the getAccessibleChild() calls that the
children all disappear; try not to assert in that case.

Change-Id: Iec8e373281950bf684fa76d69f8c4625ecd1255a