Add support for custom ordering

This addresses a bit of a pain point in the best way I can think of. Normally, you can specify column ordering in the .values() call to the Queryset. This works fine for normal fields, and for walking relationships, but unfortunately does not work for extra_select fields. When support was added for extra_select fields, they were just tacked on to the end of the regular ordering. We now provide a 'field_order' argument that takes a list of field names to use for ordering when including extra_select data.

As the tests show, a complete ordering is not required. The default order is to honor the order provided by the Model class, or the .values() call with extra_select fields added at the end. Any fields put in the ordering list will be placed at the beginning, and everything else will be added at the end, honoring their previous ordering rule.