Description
Convert Span to a "struct"; replace SpanSequence with ListSelection and ListSelectionSequence. Return an instance of ListSelectionSequence from ListView#getSelectedRanges() and TableView#getSelectedRanges(). This will avoid the need to copy the selection contents. Fire selected range add and remove events only for ranges that are actually added and removed (don't re-fire for existing selections).