Remove broken, now unnecessary import from dbmail_cron.py
Disable context processors when rendering e-mail

In recent versions of Django, Context includes a RequestContext.  A
RequestContext passes your context through the context processor functions
defined in settings.TEMPLATE_CONTEXT_PROCESSORS before rendering.  This is
normally very helpful, but in the case of rendering previews for e-mail
messages it causes a problem.  The 'esp_user' context processor sets the
'user' variable in the context to the user of the current request (e.g.
the admin), overwriting the 'user' variable (ActionHandler object) set by
the comm panel code.  As a result, any smart text placeholders of the form
{{ user.* }} will show the current user, rather than the recipient user.

This commit works around the problem by disabling all of the context
processors while rendering the e-mail preview.
I also added this to the code we use to generate actual e-mail messages
(separately from the comm panel preview), although this may not be
necessary since I don't think the RequestContext is active
Make cancelling a class unschedule it by default

It's unusual for a class to be reinstated after it's been cancelled.
Hence it makes sense to unschedule the class and free up the room[s] and
timeslot[s] for potentially scheduling other classes.
Add control over which students are e-mailed when a class is cancelled

During first-come first-served registration or close to a program, you may
want to only e-mail enrolled students when you cancel a class.  Earlier
on, you may want to e-mail lottery students as well so they can change
their preferences accordingly.  Rather than having the Web site make this
decision for you, it now lets you choose which group should receive the
e-mail announcing that the class is cancelled.
Merge pull request #572 from learning-unlimited/price-sr3-round2

Last-minute chapter requests for stable release