introduce ScColumn::BroadcastMode instead of bBroadcast, bIncludeEmptyCells

Not only are multiple boolean parameters ugly, but prepare also for the
new broadcasters-only mode yet to be implemented.

Change-Id: Ie6383826e76a771b88e7b4b29e5de9a58c598ad5
prepare ScColumn::SetDirty() to handle BROADCAST_BROADCASTERS

Change-Id: I61b6912da303b9d71eed142535f3aa0cac1681eb
in ScFormulaCell dtor remove cell also from FormulaTrack

It could happen that during a SetDirty/Notify cycle a formula cell is
appended to the formula track but not tracked yet so doesn't end up in
the formula tree. If it was deleted then without removing it from the
track the cell pointer shortly after was moved into the tree, possibly
setting pFormulaTree (and/or pEOFormulaTree) to that cell if it was the
last cell, and if immediately after that a new ScFormulaCell was
allocated at exactly the same memory location it virtually ended up as a
successor of itself in the formula tree ... leading to a crash if pCode
was accessed in a subsequent RemoveFromFormulaTree because the cell was
assumed to be already in the tree.

Change-Id: I9d1885a26b85c2331a084b5f89a2d7373cf2df0f
assert the "impossible"

Change-Id: I5fd2c7635f204bda982f1df58b4c19fe9b12464a