Various functions for the lottery

.sanitize - for removing SR's that don't make sense, so far.
.generate_screwed_csv - for exporting a csv of students who got screwed over by the lottery
.....arg, how does Python work?
Makes generate_screwed_csv have a default of the user's home directory.
Making default verbosity a thing.
Just adding docstrings
Move some code to new StudentRegSanityController

There were some functions in the lottery assignment controller that didn't
have much to do with the lottery but were stil useful.  I moved them into
a new controller that can be used similarly to the lottery (instantiate
with a program and any options, then call sanitize()).  I also made the
minor tweaks so the code would run.
Fix indentation in Class*.getRegistrations()
Add a check for the lottery module in LotteryAssignmentController init
Add utility calculations to lottery

This code will need to be updated when support for multiple priority
levels is merged in.

The utility arrays are needed for the "screwed sweep" spreadsheet
generator that is about to be updated.
Minor fixes to lottery code (mainly screwed sweep)

Indentation, importing the right thing, adding missing parentheses, etc.
Merge branch 'main' into shulinyeMinorFixes

Conflicts:
	esp/esp/program/controllers/lottery.py
Clarify date stamp on 'screwed students' CSV filename
Add testStats function to LSRAssignmentTest

This sanity-checks the basic stats and also evaluates the 'student
screwedness' metric referenced by Shulin's CSV generator.
Tweak lottery assignment stats test

We were getting incorrect results for the student screwedness value in
some cases.  This was because some students were marked as Interested in
some of the same classes marked as Priority/1.  While we discourage this,
it is possible that some real students will encounter this situation so I
think the test should accommodate it.
Add docstring for LSRAssignmentTest.testStats()
Merge pull request #605 from learning-unlimited/shulinyeMinorFixes

Various functions for the lottery