Add another model and a ForeignKey to it for testing.

Fix the tests broken by the addition of an extra field.

Fix a bug in the mixin where it would get the list of header fields from one
source, and the list of fields to extract data from a different source (one
was queryset.values_list().fields, the other was model._meta.get_all_field_names)
causing the headings and values not to line up.

Add support for using a values_list queryset with a defined list of fields,
and tests for it.
Test that we can extract data by following a ForeignKey relation.
Support generating headers across foreign keys.
Separate queryset determination out into a get_queryset() method.

Allows the same queryset to be used by render_setup() (which also needs to
pass it to generate_headers()) and generate_data.
Pass a real QuerySet instead of a fake one to render_excel_response.

It needs something that it can call .model() on.
Pass the model, rather than the data, to generate_headers().

It used to just extract the model from the data, but this makes testing harder
because you can't add a 'model' attribute to a plain list(). And it
unnecessarily hides the fact that we actually need a model to calculate the
headers, and we don't care about what's in the rest of the data.

Also make the 'fields' parameter of generate_headers required, not optional.
If you don't know what fields to use, call get_fields(). I don't think anyone
is actually using this, because nobody should really be calling
generate_headers() directly.
Convert generate_data() to a generator.

Allows us to process the data without having it all loaded into memory first.
Add support for calculated fields.

Pass a callable name (a view method or global function) as a field, and
give it a 'fields' attribute which is a list of fields that it requires from
the database. These fields will be passed to values_list(), and the method
will be called with the values, once per row, to return a calculated value
based on them, which goes into the exported (Excel/CSV) output.
Add support for headers for calculated fields.
Allow building a spreadsheet from models instead of values.

Allows calculating columns using relations (including one-to-many) or any
number of fields, without specifying which fields are required, and/or using
callables and properties of the models.
Remove get_queryset, replace it with self.queryset.

It's incompatible with get_queryset in Generic Class-Based Views. And there's
no reason not to just set a queryset in your get() method if you need a
dynamic one.
Allow overriding the base filename but still having the correct extension added.

Reinstate test for download disposition header and filename.
Merge pull request #12 from aptivate/master

Fix confusion with order of fields, add tests for traversing a foreign key