Adds signals to update mailman lists on changes to users.
Adds script to update mailman lists.
Add/remove users from the appropriate lists, not always announcements@.
Remove now-unused import.
Adds text to disable account page.
Only show multiple users will be disabled text if mailman in use.
Program module tweaks

Change individual program modules to be proxy classes instead of
abstract base classes. (Abstract base classes are for inheriting from;
proxy classes are for extending Python behavior. Program modules want
the latter.)

Change module extensions to be specified using a classmethod, rather
than by inheritance. This is because proxies aren't allowed to inherit
from multiple model classes.
Tweaks to the program module tweaks

Change behavior of ProgramModuleObj.fixExtensions(): rather than
update the instance dict with all of the module extension attributes,
just add one attribute which points to the module extension itself.

Also, make extensions() return a dict: key -> ext_class rather than a
list of ext_class. The key will be used to name the attribute that
points to the module extension.

This will break existing code that tries to access module extension
attributes directly as module attributes.
Add __getattr__ method for backward compatibility

If code tries to access attributes of a module_ext directly as
attributes of the module, let it work but raise a DeprecationWarning.
Fix code accessing module_ext attributes directly from modules

Bring existing code into compliance with the change in 3afe965b.
Rename inaccurate variable name teacherclsmodule

(and fix inaccurate comment)
More informative error message when teacher bio is not found
Use protocol-relative URL to load CDN scripts in custom forms
Adds in time filtering stuff (and visible times) for records
Formstack admin.py stuff.

Now with searching and filtering.
Adds by-programming filtering for StudentRegistrations

(now, if I could mass expire them, that'd be *great*. But mumble mailman)
Adds email searching as well
Oh wait, the studentregistration bulk thing already exists and I am just
an idiot.

(it now has a message attached to it.)
Switches some search fields (for emails) for exact emails.

Because the django docs says something about better performance, and I
can't see why you'd want to search for a user's partial email....
more list_filter stuff