Make type laxity of models.EnumField optional

Rename the current models.EnumField to models.LaxIndexEnumField, and
create a models.IndexEnumField that doesn't allow casting back and forth
to canonical names. Add more tests for both.