Update prepared statement DB backend for Django 1.4
Update auth middleware for Django 1.4

WARNING: This is a hack to code I don't fully understand yet and it is not
well tested.  Further review is necessary.

Django made some changes to its internal APIs for the authentication
middleware.  This broke our customized authentication middleware.
We had a substantial amount of code replacing the Django auth middleware's
request.user object with an ESPUser.  It looks like Django's new lazy
evaluation class will work here.

We may want to restore the part that tries to set request.user when
Django's get_user function doesn't think anyone is logged in, but the user
ID is stored in the session.  I have no idea why this would happen though.

One other thing I changed is to import ESPUser.  This hasn't broken
anything for me, but I bet there was a reason the previous code tiptoed
around importing ESPUser until it was actually necessary, so I would be
cautious here.
Update cache_inclusion_tag to work with Django 1.4

Django's internal APIs for template tags changed.  This attempts to deal
with that by modeling the cache_inclusion_tag's tag generator on some of
Django's tags.

Appears to work for our QSD and catalog tags, but may be broken elsewhere.
Converts the AdminVitals section of the dashboard to the new-style
management look

This breaks down the AdminVitals sections into related sections, and
puts them in expandable sections, so that they take up less space
initially. This will ultimately load each component of the AdminVitals
individually via AJAX when they are expanded.
Merge branch 'main' into ajaxify_dashboard
Partially ajaxifies the list of classes
Finishes AJAXifying the dashboard AdminClass inline template
Adds in the stats JSON view, which is heavily based on the AdminVital prepare function
Implements an AJAXified AdminVitals module, which uses the stats JSON view
Fixes up the caching on the stats function -- dashboard is now fast
Fixes the 'use_rapid_approval' tag in AdminClass
Fixes a slight bug in the 'use_rapid_approval' Tag checking
Set dashboard styling with rapid approval correctly
Makes a few tweaks to rapid approval.

There was a problem with the popup status not getting updated. I
modified the caching of the class_info function slightly. This
didn't actually fix it, since it turns out the problem was with
browser caching, but the change makes sense to keep in I think.

I also modified wording to be unified (chose "Approved" over
"Accepted" in all locations).
Fix bug where there is an extra slash after the host URL
Changes some getProgramTag calls to getBooleanTag calls
Hides closed classes with hide_full_classes Tag

Maybe there should be a different Tag for this, or the Tag should be
renamed to hide_full_or_closed_classes.
Bugfix to previous commit
Fixes url target for 'Manage Documents' link in teacherreg
Avoid using CSS float clearing in program management page

The main program management page (module directory) had a hardcoded
template making use of the CSS "clear: both" property to create a hard
newline after the pretty buttons (due to the way jQuery UI renders them,
you can't make a newline with a <br> tag).  This broke Stanford's layout
and potentially others since they were using CSS floats for their
navigational elements, which were being cleared.  Everything after a
line break had to appear below the bottom of the navigation divs, creating
a huge empty space.

In this commit the divs with the "clear: both" property and removed and
instead each block that needs to appear vertically separate are wrapped in
a div with the "display: inline-block" property.