Support storing DIPs via the storage service

Refs #6564
updating descriptive text

refs #6691
control: fix unar version dependency
Store AIP: handle AIPs without pointer files

This is needed to support uncompressed AIPs, which do not have
pointer files.

refs #6589
Package: add new compress_package instance method

This supports features such as downloading entire AIPs for
uncompressed AIPs.

Note that this currently only tarballs the file without performing
actual compression.
PackageResource: allow downloading uncompressed packages

refs #6589
Package: don't try to call methods on None pointer_file_location
Pointer file request: return 404 if no pointer file exists
Extract file request: adjust path for uncompressed packages
Extract file request: return 404 if requested file not present
Extract file request: return 501 if package can't be extracted
Roughed in AIP recovery model functionality.
Added endpoint to submit recovery requests to.
Refactored delete/recover endpoints.
Added AIP request administration to UI.
Refactoring AIP request handler.
Removed setting used during testing. Got recovery working.
Added corrupt files backup during AIP restore.
Setting for where bad AIP files get backed up.

Added a setting allowing the directory where bad AIP files should be
copied to to be specified.
Added warnings if AIP restore backup dir not set.