Refresh QSD pages after editing

Make the inline ajax-based QSD editor trigger a page reload after
editing, so as to clear the cached version of the page for the person
who just edited it. This fixes #276.
Changes to barcode unenroll script from Spark
Fixes section list admin binder printable to include home phone
Fixes XSS vulnerability in rapid approval system
Removes console log
Add file lock for dbmail_cron.
Confirm before deleting upload documents.
Merge pull request #1181 from learning-unlimited/fix-xss-vuln

Fixes XSS vulnerability in rapid approval system
Merge pull request #1180 from learning-unlimited/fix-sections-list

Fixes section list admin binder printable to include home phone
Allow configuration of additional Javascript code (or other HTML) in page footers.

The main purpose of this would probably be to add tracking code for analytics.
Fixes bug with onsite classchange grid

The print_schedule() function was overriding the global 'data' variable,
which has all of the class and timeblock data, making it impossible to
do anything after printing a student's schedule.
Speeds up loading for onsite classchange grid

Before the grid loads, some profile data for all the students is loaded.
This data is mostly used for the autocomplete box, and includes student
names and id numbers. However, the grades of all students was also being
precomputed, even though grade data is not needed until after a student
is selected. This query takes an incredibly long time for large
programs.

Increases the performance of the grid loading by moving the computation
of the students grade from students_status() to get_schedule_json(), the
latter of which is called for individual students only when that data is
needed.
Merge pull request #1201 from learning-unlimited/onsite-fix

Fixes bug with onsite classchange grid
Moves dbmail lock file to site-specific tempdir

Forces the evaluation of the Django settings before importing the tempfile
module, because esp.settings modifies tempfile to avoid collisions between
sites.
Releases the dbmail lock after use

In theory this should be handled automatically after the process ends,
but for some reason I encountered a lock that did not behave this way
during testing.

I may or may not have been doing something wrong. But either way, there
is no harm in manually unlocking when done. Better safe than sorry.
Misc improvement to cron daemon emails

Adds print statements to print the content of the message delivery error
email, so that this message also gets included in the cron daemon emails
to the serverlog.

Technically this doesn't add any additional information (individual
errors are already printed inline with the successes), but this makes
the error information easier to read in the serverlog emails.
Merge pull request #1182 from learning-unlimited/dbmail_cron_lock

Add file lock for dbmail_cron.
Add confirm warning for admins deleting per-class docs
Merge pull request #1183 from learning-unlimited/issue1147

Confirm before deleting upload documents.
Merge pull request #1172 from learning-unlimited/qsd-edit-reload

Refresh QSD pages after editing