Overflow simply extends ItemRange with a new getWidth() function that
determines if the content of the range is wider than the range box
itself.
This did require adding a getWidth() function to the Item object that
always just returns this.width, and adjusting Stack.js to use the new
getWidth() function instead of item.width
than the width of the text. This prevents range items with longer text
lines from being completely hidden.
Also update the stacking collision check to handle this case so that the
overflowed text is not hidden by another item.