Fedora: record each file to the database

In the absense of persistent UUIDs originating in the storage service,
storing the checksum and source ID allows the file to be recognized
when it comes back around again.
Add Callback forms, views

This allows for generic REST API callbacks to be associated with given
types of events. A callback is given a URL pattern, an HTTP method to
use when contacting that URL, and an expected HTTP status.

The only such event right now is "post-store", but this could be used
other places. For instance, AIP reingest could use this instead of
using its custom callback.

refs #6788
Add post-store AIP callbacks

This adds a new REST endpoint that allows a post-store callback to be
executed for every file in a given AIP.

This will only trigger for files which exist in the File table, which
in practice means only files that were transferred from Islandora.

refs #6788
Space: update_package_status must always return a tuple
SWORD helpers: log exceptions during download
SWORD: track object_id at item, not root, level

The location where this is needed only has access to individual item
records, not the root level.
Post-store: filter on non-stored files, handle multiple
SWORD helpers: check for transfer before approving
SWORD helpers: name Fedora METS after object ID
SWORD API: store all METS files

Previously, only the first METS file for a given set of files would be
stored. This stores every METS file, so that multi-file transfers will
contain the full set of metadata.
SWORD: download MODS records with OBJ items