Patch 3

Removed empty_strings_allowed = False in BigIntegerField, because it is already specified in its base class IntegerField.
Added safe default limits to the formfields of SmallIntegerField and PositiveSmallIntegerField according to https://docs.djangoproject.com/en/dev/ref/models/fields/#positivesmallintegerfield and https://docs.djangoproject.com/en/dev/ref/models/fields/#smallintegerfield
The reason is that when I create ModelForm from a model that contains small integers, it is vulnerable by default. You can input large integer and get an exception DataError: smallint out of range. I propose to stay on the safe side and for those backends whose small integers have greater capacity, user must provide his own limits.