Column range fix

By default, if a model is saved with an out-of-range value in an integer field, MySQL sets the field to the closest representable value and returns a warning, which Django re-raises as a DatabaseError, which propagates to the view dispatcher (wherever that is), causing an HTTP 500. This pull request (a) forces MySQL to raise an error (not a warning) if a field value is out of range, (b) shows database errors in forms, and (c) adds Django validators so the out-of-range error message is more comprehensible.