Fixed #2443 -- Added DurationField

This has been added to core as well following design decision taken in https://code.djangoproject.com/ticket/2443

This field was never merged due to UI related issues. Personally I think a CharField with `DD HH:MM:SS.uuuuuu` formatting in it is sufficient - this is basically what a `TimeField` does anyway.

Uses `bigint` of microseconds for non-psql databases, `interval` on postgres.

Todo:
- [x] docs
- [x] form field
Seems reasonable and will reduce how often the logic is run. See #3778