Fixes bug with adding a list of users using add_list_member

Improves upon fix in 003d738b, based on discussion in Github pull
request #1297.

Splits add_list_member() into add_list_member() and add_list_members(),
where the former only takes a single user or email, and the latter only
takes lists of users or emails.

Also fixes a bug in how mailing lists were being calculated after the lottery.

Replaces #1297.
Actually, I think it's worse than that -- it looks like it was adding only the first n students, where n is the number of sections in the program.  (Note that `self.student_ids[i]` is added, where `i` is the iterator over sections.)  I don't think that was an issue in the past, because I think we would have noticed it, but idk.  In any case, the new code looks right, with the exception that a student who gets no classes will no longer get added to the program list.  This will confuse us and them, so I think it should get fixed.  I think changing the last line to be
`add_list_members(<list>, ESPUser.objects.filter(id__in=list(self.student_ids)).distinct())` or equivalent, at one fewer indentation level, should work.