Roughed in AIP recovery functionality.

* Added recovery logic to Package model
* Added REST endpoint to submit recovery requests to
* Added AIP recovery request administration to UI
Prevent creation of redundant recover locations.

Added logic to prevent the creation of more than one recover location per
pipeline.
Add request event ID to event request responses.

For the REST endpoints used to create request events
(AIP deletion request, AIP recovery request), return the
ID of the events event in the JSON returned upon success.
AIP request optional remote endpoint notify.

Added configuration options/logic to enable remote REST
endpoints to be notified upon approval/rejection/failure of a
requested AIP operation. Enabled for AIP recovery.
Add Sphinx doc of AIP recovery admin/process.
When creating AIP recovery location, don't hardcode space or relative_path

Otherwise, if the default AIP recovery location is changed, the
Storage Service will set up a second recovery location on startup.
This will subsequently cause errors in locations that try to use
Location.get() to fetch results, since there will be two.

Instead, get_or_create() should only consider the purpose when fetching
a result and supply a defaults dict to use only when creating a new
one.