For the GlyphSelectionProperty, you always know that the array is going to be of type DataSet.  I wanted to make it more general so it would detect what type it is by state.type.  With out this. property.setState can't take property.getState as an argument and still work, which I think is ridiculous.