Fix minor issue in csv assertion

the comparison loop was using zip(), which will only pair values up to the length of the shorter sequence. So in this case, if your test data had 3 rows, but your output data only had 2, the test would still pass even though that's clearly not OK. Using izip_longest() with padding, all elements of the two sequences are paired together.

Also factor out this method so it can be used by another class.
Improve test data

It is useful to have more test data in the main dataset, so I moved Ged there. This will be necessary for doing more advanced ORM operations in tests of newer features.
Fix bug in record sanitation

One of the unit tests caught this - nontruthy values were being discarded on export. Yikes.
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.
Merge pull request #38 from steventlamb/topic/add_support_for_ordering

Topic/add support for ordering