Make Selection widgets respect values order.

This PR suggests an alternative method for storing selection widget state in the backend.  Instead of the primary store being a dictionary, a tuple of tuples is used. i.e. ((k1, v1), (k2, v2), (k3, v3), ...)

@rmenegaux and @jasongrout

Good point.  I should probably only expose values and value, no need for the others.