Small fixups for simple enums

For testability, return choices in a known order. Also, check that all
enum values are hashable (otherwise enum blows up when trying to do
a reverse lookup).
Add tests for simple enums