Work on finish_reingest AIP

refs #6489

Fix obj_update to work better with PATCH and PUT.  Filled out rough
implementation of finish_reingest.

Squash with 'Stub out finish_reingest AIP'?
Consolidate event generation for pointer files

Move event and agent generation for pointer files to utils, and add a
wrapper function that handles everything for adding events.
Update pointer file in reingest

refs #6488

Update checksum and add another compression event after reingest.
Compression event information is stubbed out.

Squash with 'Stub out finish_reingest AIP'?
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.
Update compress_package for get_local_path changes
compress_package accepts compression algorithm parameter

Add compression constants to Package class for algorithms supported by
Archivematica.  Update compress_package to take a parameter for which
compression algorithm to run and use that.
Reingest AIP: recompress based on reingested compression

refs #6498

Update reingest to parse the compression algorithm out of the reingested
pointer file and use Package.compress_package.

To handle a different compression algorithm resulting in a different
package name (eg .7z vs .tar.bz2) or the AIP being stored in a different
location, do not update the current_path or current_location in the
PackageResource.  Reingest endpoint will reset the current location & path
to match the DB, and pass in the reingest location & path, to be updated
once the package has been successfully reingested.

Squash with 'Stub out finish_reingest AIP'?
AIP Reingest: Update pointer file

refs #6498

Update pointer file for reingested AIP.  Notably: fixity checksum,
FLocat, size, and several compression related fields.  Move pointer
file changes to own function.