Fixes to lottery code for multiple priorities

Mostly fixing regressions introduced in c43bf07 when the ExpirableModel
code was merged, by remerging correctly.  Also a couple of minor fixes
to the stats code for when multiple priority levels are in use.
Adds StudentSubjectInterest to lottery script

It will still accept StudentRegistrations, it will just now also accept
StudentSubjectInterests if they exist.
Adds code to fill in lower priorities.

If students haven't filled in their lower choices, we want to make some
guesses so they don't get screwed.  This makes the lottery work more
reasonably when we're using both several priority levels and interested,
and we don't expect all students to fill out all of both.  Details about
the exact conditions are in a comment.