Trigger a z-order event when an element's label changes from empty to non-empty or vice versa
Trigger a z-order event when an element's label changes from empty to non-empty or vice versa

If a node has `width: label` or `height: label`, a change of the label to or from the empty string makes the node have zero area.  This change makes it so that any change with an empty string causes a z-order event.  This event allows the renderer to recalculate the z-sorting of the elements, including which elements are interactive.  This sorting is used for hit tests.

This fix is simple, but it has the caveat that it triggers unnecessary z-sorts for elements that do not have `width: label` or `height: label`.  Given that a consumer is unlikely to be frequently setting labels to empty strings -- labels generally change infrequently, anyway -- the tradeoff is worth it.

Ref.: Changing a label of a node with width: label (#2678)

cytoscape/cytoscape.js,cytoscape/cytoscape.js