Adding admin support for editing content areas/items

Created a ContentAreaAdmin base class upon django.contrib.admin.
ModelAdmin that all classes should use to allow editing via the built-
in admin. It overrides add_view and change_view and calls super(),
using the context before and after (and similarly adding hooks in the
object's form, save_model, and junk) in order to get things working. It
may or may not be set up perfectly in terms of transactions, but it
withstands the basic clicking around-style testing. It also supports
reordering, though it avoids the added complexity that would be
required for drag-and-drop sorting with jQuery UI. This can mess with
things like rich text editors and other JS functionality, so the admin
and JS interfaces both need to allow for ease of customization here.

Note that these items exist entirely outside of the Django admin. It's
just a list of forms that we assemble and pass to our template; we then
harvest the POST data on the other side. This is needed because items
have their own types, and fieldsets/inlines are hairy and don't support
dynamically typed forms/models inside of them. As a result, things can
get a bit hairy, but this is my third time writing this so, trust me,
it's better.

Fixed some requirements issues and simplejson compatibility in the
default_item_types' app's VideoForm tests.

COMPLEXITIES:
------------------------------------------------------------------------

TemporaryArea: This subclass of ContentArea allows the saving of items
before the area exists (when you're saving a new area and its items).
If those items were saved successfully, it saves the real area object
with super(...).add_view(...). If that succeeds as well, it then
migrates the temporary area's items to the real one using
TemporaryArea.migrate_items_to(real_area_obj). This is needed because
saving the items after the area/obj means that the response is already
formed, and any success messages are already in the messages app queue.

ContentAreaAdminForm: Since the area being valid depends on our phantom
items validating, we need a hook to control area's validation. This
custom form accomplishes this: it adds a custom field that holds True
or False ('1' or '0') depending on whether or not our items validated.
To prevent this from showing in the admin, get_fieldsets calls the
super and hijacks the result, removing any references to that field's
name. This is required because ModelForm.Meta.exclude would render the
field useless, and ModelAdmin.exclude seems to only work on actual
model fields (and this field is a custom one).

TESTING:
------------------------------------------------------------------------

Added django-nose with a coverage report. The models have 100% coverage,
and overall coverage is somwhere in the lower 90's. This could all
stand being refactored - it's one giant file at the moment.