Alters lunch constraints so they can happen on only certain days.
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)
Reduce code for some day lunch constraints
Oops, misplaced paren. Empty lists are falsey anyway so just use that.
Add a LunchConstraintGenerator test case for no lunch timeslots
Move "number of lunch section" check in the other test cases
Merge branch 'main' into some-day-lunch-constraints

Conflicts:
	esp/esp/program/tests.py
More informative error message when teacher bio is not found
Update esp.wsgi to use django.core.wsgi public API

Resolves #1242.
Merge pull request #1114 from learning-unlimited/some-day-lunch-constraints

Alters lunch constraints so they can happen on only certain days.