Split form fields into canonical and index types

Require callers to be explicit about whether they'd like to coerce
form input with the `from_index` or `from_canonical` methods.
(`CanonicalEnumField` exactly replicates the current `EnumField`
functionality, but drops support for old-style dict-based enums.)
Configure pylint to ignore generated members

Pylint can't handle much dynamic-language magic, so configure it to
ignore known okay class attributes (Django's `objects` manager, our
enums' `index` and `canonical_name` properties, etc.).
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.
Merge pull request #11 from akshayjshah/split_fields

Split form and model fields into string- and int-based versions