Enforce ORDER BY on invoice rows when building PDF

The web interface always ordered by id (because django does so by default),
but when building PDFs the query was run without any ORDER BY clause. Therefor,
in some cases the rows on the PDF invoice would come back in a different
order from the way they were generated. In particular, this would make the
invoice look really strange when there were "sub items" indented, such as
trainings added to a registration. Even more visible on bulk registrations which
can have multiple sets of indented rows, which end up in the wrong place.

Sometimes, but not consistently, they would come out completely backwards.

Enforce ordering by the primary key only, which should be good enough to
keep it consistent with what is in the web forms for manual invoices, and
the actual creation order for automated invoices. We may want to consider
a "sort key" field for them sometime in the future.
Fix indentation
Add ability to control sort order of t-shirt sizes