Extra documentation, more tests
Add some tests, remove dead code.
Add tests, documentation
OptionList now ensures that its members occur only once. Uses a frozenset internally. Could be renamed to OptionSet.
CombinedDataSource now does the right thing when ChoicesMade is set.