Fix #5986 - Override default field order

It is sometimes necessary to alter the order in which fields are rendered, or remove individual fields, especially when subclassing forms.
With this patch one can easily override the default order with a list of field names.

Ticket https://code.djangoproject.com/ticket/23936
Please see https://docs.djangoproject.com/en/dev/internals/contributing/writing-code/coding-style/#python-style for the recommended docstring format. You can also remove \` markups.