Export function for all attendee raw data

Added a all_attendees function to /summary that exports every piece of
information saved in the database. Some of the information is too raw
for human use.
Added attendee_upload function

Adds a way to upload a .csv to import attendees. Currently doesn't work
100% correctly for all data.
Refactor export and import to work dynamically

Exporting and importing now works on all columns in the Attendee
database without needing to special-case specific columns. It instead
modifies them based on their type.

Foreign keys are just exported as keys, but nothing breaks horribly.
Minor fixes for attendee import

Removes an extra 'raise' that caused an infinite loop, and orders
exported attendees by badge number.
Removes automatic unset_volunteering

Because AnthroCon doesn't let people select their own departments, the
confirmation forms never passed through the attendee.staffing variable.
This hides the check for .staffing behind COLLECT_INTERESTS, so uber
stops automatically resetting the badge type to Attendee.
Display badge combinations

Displays all badge combinations depending on what badge an attendee has.
Also displays the right badge price in some cases, but not all.
Display correct price based on paid status

Checks if the attendee has paid or is marked as not needing to pay.
Moves the payment logic from badge_choice to the javascript in
preregbase.
Forces amount_extra to 0 if it's too high

Changes the amount_extra to 0 if it goes over the Super Sponsor price.
We should fix the core problem of the session going off kilter, but this
is a stopgap until then.
Actually fixes amount_extra

Makes amount_extra a hidden input field instead of a select field,
according to COLLECT_INTERESTS, so the code to change it doesn't go out
of whack.
Correctly disable badge boxes

Moves the check for amount_paid so it always runs, regardless of what
the amount_extra field is.
Merge pull request #799 from magfest/fix_confirm_page

Fixes for the confirmation page
Re-enables shirt options

Adds a missing function call so the shirt options now display when they
should.
Fix badge price display

Fixes the case where the badge price may go into the negatives when the
attendee encounters a validation error.
Make use of badge_cost

Replaces a bunch of extraneous cost with attendee.badge_cost, which
already did everything I needed it to. Derp.
Add badge number display

Adds the badge number and a disclaimer for attendees confirming their
registration.
Merge pull request #800 from magfest/fix_confirm_page

More confirm page fixes
Remove extra badge label from SS box

The Super Sponsor box was displaying the badge label twice because I
forgot to remove old code. Fixes that, and also removes the duplicate if
statement.
Merge pull request #801 from magfest/fix_confirm_page

Remove extra badge label from SS box
Display attendees after upload

Displays a list of attendees imported via the upload function. Also
allows the user to select a date format, and fixes a couple issues with
sessions getting messed up.
Merge pull request #760 from magfest/import_attendees

Export and Import Attendees