Cleans up some user types code

There were previously many places in the code where lists of the
different user types were defined. Improves this by making everything
reference either ESPUser.getAllUserTypes() or ESPUser.getTypes() (the
latter of which now correctly queries the former).

There were also previously some places in the code where hard-coded
lists of the user types with ProgramModule user list functions (e.g.
students(), teachers(), volunteers()). Improves this by making class
variables USER_TYPES_WITH_LIST_FUNCS and USER_TYPE_LIST_FUNCS which
store this list, and making everything else reference these constants.

Finally, use these different lists to automatically generate the
students(), teachers(), volunteers() and num_students(), num_teachers(),
num_volunteers() functions, rather than manually generating these
separately from the list of such user types.

(Reworked the way that isStudent(), isTeacher(), etc. are generated to
be in a similar style to the way students(), teachers(), etc. are now
generated. The old method no longer works under this scheme, because
having the old create_membership_methods() class function (which was
called at the module level) call getTypes() was causing Django
validation errors, since getTypes() calls getAllUserTypes() which calls
a method on the Tag model, which is apparently not allowed at the module
level.)
Fixes commpanel bug with e-mailing parents

Because there is no Program.parents() method, the commpanel filters for
Guardians and Educators was failing. Refactored the UserSearchController
to always use the user type name (Student, Teacher, etc.) rather than
the filter method names (students, teachers, etc.), and separated
Guardians and Educators into their own categories (rather than grouping
them under parents) to avoid this problem.
Fixes bug in previous commit
Merge branch 'main' into parent_comm_panel_fix
Switch ESPUser.getTypes() and .getAllUserTypes() to caching API
Merge branch 'main' of github.com:learning-unlimited/ESP-Website into main