Bring in recent local changes to lottery code

These were used for MIT Splash.  The code no longer assumes that the
number of timeslots is the same for each day when the program is
multiple days.  This requires making the lunch_by_day array into a list
of potentially different sized 1-D arrays, rather than a single 2-D array.
Make lottery tolerant of null graduation_year values in student profiles