Fixed #2443 -- Add 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
The raised error is different depending on the backend - we get a `TypeError` where we are handling the functionality ourselves (e.g. on sqlite) but where a true data type exists we don't do extra validation and let the database throw its own errors. This is what all other field types do - if you do `F('charfield') * F('datefield')` for example then you get a `DatabaseError`.