Relayout columns whenever spanning header changes

DRQS 38394870
The change in Node::diff is simply so that we don't detach whenever the column
span changes (this is more of an optimization than the actual fix).

Add a flag to ColumnInfo to indicate whether the spanning header size has
changed (either the column count or the header height).  This flag is initially
set to false at the beginning of layoutBlock() for the multi-column block.

This flag is set to true when we actually set the spanning header column count
or height.  When this flag is true, markForPaginationRelayoutIfNeeded causes
the children to relayout.  This effectively causes a recursive relayout of all
the children within the multi-column block.