Prevent duplicate asset assignments

Prevent multiple assets from being assigned to the same section and
container.  The likely scenario that causes this is a user opening the
same section in multiple browser windows or tabs.

This fix does a few things:

* Adds a ``unique_together`` constraint on the ``SectionAsset`` model
  using the ``section``, ``container`` and ``weight`` fields.  The
  ``weight`` field is included because some stories created in the Django
  admin don't have a container selected, so we differentiate between them
  by the weight field.
* Adds a data migration to fix existing ``SectionAsset`` instances that
  violate this constraint.  The data needs to be clean before adding the
  the ``unique_together`` constraint.
* Updates ``SectionAssetResource.obj_create`` to catch the
  ``IntegrityError`` raised when the the ``unique_together`` constraint is
  violated and returns a 400 error to the client.
* Updates the ``SectionAssetEditView`` Backbone view to handle the error
  returned by the API endpoint, show the user an error message, and refresh
  the UI to show the previously added asset.

Addresses #535