Add tests for updating activity index
Add serializer for revsion.models.Version

This is a first step in moving away from using reversion to keep track
of edits.
Create log activity model

This commit changes the way we log user activities. Previously, newly
created reversion.models.Version instances would trigger updates to the
elasticsearch activity index.

There is now an explicit LogAction model which is basically the same as
django.contrib.admin.models.LogEntry. New instances of that are created
in API views in the generic post_save and post_delete methods, which
trigger identical additions to the elasticsearch activity index as
before.

This was necessary in the first place because the newest version of
django reversion does not differentiate delete actions, and we want to
log delete actions. Now that we can update reversion, we can update to
Django 1.6 (I think?)

(I didn't want to use the Django LogEntry model (or inherit it) because
we don't import that module. That prevents us from pulling in the
associated i18n files which are fairly important everywhere in Django.)

unrelated: The Giants just won the pennant on a Travis Ishikawa walkoff
homerun
Improvement on last commit

Only log actions from objects that are subclasses of
main.models.base.Administered
Bump to Django 1.6
Fix bug in serializers dealing with related topic fields

In Django 1.6, GenericRelation fields are no longer included in
model._meta.many_to_many, which broke the automatic detection of related
topic fields in our serializers. Instead of the automatic detection,
just explicitly map related topic fields to the TopicAssignmentField.

see https://code.djangoproject.com/ticket/21428 regarding the
GenericRelation change
Bump reversion to 1.8.4

Reversion 1.8.* stopped creating revisions upon deletion, so we remove
those. Migration 0137 is a duplicate of reversion's 0006 migration, but
South doesn't respect cascading delete in non-frozen apps, apparently.
Tryingto run that one (reversion's 0006) would violate the FK
requirement in postgres for our RevisionProject model, since django
deals with ON DELETE behavior instead of baking it into the database. I
know, ugh.

See https://github.com/etianen/django-reversion/issues/164 for more on
the rationale for changes in reversion.
Attach reversion versions to activitylog entries

This is done within the base API view classes.
Replace model._meta.module_name to ...model_name
v0.8.6
Remove south migrations

Goodbye
Bump django to 1.7
Update GenericRelation and GenericForeignKey for Django 1.7
Add django migrations to replace south migrations
Use new app config with main module
Use 1.7 app configuration for search module

Replace en_index and activity_index imports with `get_index` that lazily
loads the elasticsearch indices
Revert rest_framework back to 2.3.13

There were problems with serializer fields on foreign key relationships.
According to the developer, those bugs won't be fixed before the release
of 3.0, which will refactor serializers more generally.
Comment out OrderedModel tests in main

Django no longer allows custom models in tests... Not sure what to do
immediately, so I'll fix it another time.

Maybe a separate module for tests?
Replace commit_on_success with atomic

As introduced in Django 1.6
Change get_query_set to get_queryset

Following deprecation warning