Attempt to fix lottery error with fill_low_priorities
Merge branch 'issue803' of github.com:learning-unlimited/ESP-Website into issue803
Lottery frontend: add an error page if lottery module isn't there
Lottery controller: Add specific exceptions for invalid section IDs.

Some errors we encounter in the lottery are the result of errors in our
code and we want admins to contact us if they encounter them.  However,
some errors are not really the fault of the code and can be addressed by
admins.  For example, they may have cancelled a class after students
signed up for it.  We don't want to ignore those registrations silently
and go ahead running the lottery, but we also don't want confusion every
time this happens.

This commit adds a LotteryException class which can be used within the
lottery controller for this sort of problem, and uses it for the most
common case encountered so far (preferences for sections that don't
"exist").
Lottery frontend: report detail of exceptions when they happen
Lottery frontend: use base64 encoding for compressed data

We were getting Unicode errors encoding the zlib-compressed data string.
Base64 encoding avoids this problem although there is some overhead
(33%?).