Student reg redesign

This is the new 2-phase lottery registration module developed by MIT.  Each phase is a new program module:
- StudentRegPhase1 allows students to select which classes they are interested in, without regard for any issues of scheduling.  This helps them filter down the massive catalog.  The view includes dynamic filtering of classes by keyword, grade or category.
- StudentRegPhase2 takes the classes from the previous phase and splits them up for each timeslot, so that the student can choose some number of priority classes for each timeslot.
Both of these modules do most of the work client-side to avoid sending large portions of the catalog back and forth.  The format of student preferences entered is very similar to MIT's HSSP lottery and should require few changes in the lottery backend.