Add text-message sending panel

There is now a module which allows the texting of broad subsets of
students using Twilio.
Clean up unnecessary files
Make changed suggested by review

Un-hardcode email address, throw descriptive error if not properly
configured, remove dead commented code.
Add balance breakdown to /accounting/ for each account.

See Issue #874.
Class comments emails: on changing a class, the subject line will contain "Re:".

See Issue #975. This helps differentiate between new class registrations and changes to existing classes.
Alters lunch constraints so they can happen on only certain days.
Merge remote-tracking branch 'hobinjk/group-texting-module' into group-texting-module
Add twilio to requirements.

Note that the Twilio API Python client is free software.
Some minor adjustments to the text messaging module.

The user selection now uses the regular user search controller instead of selecting specific lists. Instead of printing to console, what was printed will instead be displayed on the finalization page. The user interface is now three-stage instead of two-stage, with an intermediate stage where the user can double-check the number of users who will be sent a text message.
Group texting module: remove template files that are no longer used.
packages_base_manual_install.sh: fix for 32-bit machines.

Previously this incorrectly assumes that the machine is 64-bit. Now it incorrectly assumes that it is either 32-bit or 64-bit. It still assumes it is Ubuntu or similar.
Add option to hide QSD modification details from normal users.

See Issue #486.
QSD footer: add mode to show modified date but hide user.
QSD footer: add comments describing display modes.
Fix send_text_messages script.
Add publicly viewable onsite class list

Should be revisited in the future, as this is a simple hack to show a
public version of the class list already displayed by the onsite
interface.

Partially addresses #167.

Cherry picked from portions of 88ec6d6.
Tweak formatting in password reset/recover

Addresses #1021.  Proper solution will rewrite these templates to use
Bootstrap forms in <div>s instead of <table>s.
Update survey XLS export for new schema

This addresses #840.  Fixes a 500 error when accessing
/manage/[program]/[instance]/surveys/dump.
Fix SplashInfo saving error reported by Granite Hills
Adds backend for email sending to user contacts

The current schema of the commpanel email sending system allows for
sending to an arbitrary list of users. However, it could not send to an
arbitrary list of emails, so it was impossible to construct a commpanel
filter such as "email all guardians of all students enrolled in at least
one class".

This commit migrates MessageRequest to have a sendto_fn_name CharField.
This holds the name of a function in esp.dbmail.sendto_fns which takes a
user and outputs a list of related addresses to send to. The default
behavior is the old behavior, to only send to the user itself. However,
additional functions can be used instead to specify guardian emails,
emergency contact emails, and combinations of those. During the
processing of a MessageRequest, each user in the PersistentQueryFilter
of recipients is passed to the named sendto function, and those
addresses are sent mail.