Extract files using unar

Replace atool with unar - support for more formats and encodings.  Add
unar to the dependency list.
UI-generated Location path is relative to Space

refs #5608

Javascript that generates the path from browse dialog stores the base
path, and removes that from selected path.  Also continues to strip
leading '/'s.  Updated URL to not be hardcoded.
Add backlog purpose

refs #6131

Add backlog purpose.  Also create config option and default values for a
default transfer backlog location.
POST to Location moves files

refs #6131

POST to a Location with information about the source location and the paths
of the files to be moved, copies the listed files from the linked Location
to the Location POSTed to.  Directories are created with 775 permissions
instead of 755.
Allow backlog transfers to be stored & deleted

refs #6131

Add support for storing a transfer in a backlog Location when a Package is
created.  Add checks to ensure packages only go to the correct Location's
purpose (ie AIPs go to AIP storage, transfer to transfer backlog). Refactor
store AIP code to share some in common with backlog transfer.  Expect AIP
storage origin_path's to be relative to the Location. Allow transfers to be
deleted from backlog
Fix moving directories

Moving directories caused the directory to be nested inside itself.  To fix
that, when moving from staging to Space, terminate all directories with /
to make rsync happier.

Move all path pre-processing to Space.move_from_storage_service instead of
duplicating in each child space.
Delete backlogged transfers

refs #6131

Delete folders as well as files correctly.  Don't try to delete pointer
files if they don't exist.
Added LOCKSS-o-matic stubs

refs #5425

Added a Space class for the LOCKSS-o-matic.  Functionality relating
to LOM on the changes to the METS file are stubs, since those
requirements not yet decided on.

Updated store AIP and download file functions to work with LOM, and
added a stub callback function for when LOM is done storing the file.
Added a new status for a package for when it is on the Storage Server,
but not yet in LOM.

Split chunks of an AIP are found at <aip_uuid>/download/<chunk_number>/
LOCKSS Space can parse service document

Add function to fetch and parse a service document, update the au_size and
collection_iri.

Added dependency on sword2 client library. Github version is newer and more
featureful than the version on PyPI. Install dependency from github.
Add common NSMAP

Add a common namespace map for use when working with METS and XML.
Update existing lxml code to use it. Add ipython as a development
dependency.
Create AtoM entry for AIP

refs #6009

Create the AtoM entry with the title, ID, agent, and description of the
AIP. Title, agent and description parsed from the METS file Dublin Core
title, description and an 'organization' agent.  Extract state IRI for
polling LOCKSS-o-matic from the deposit receipt.
Update LOCKSS-o-matic service doc and resource creation

refs #6009

Update LOCKSS handling of service document and atom entries to create
resources to match API changes.

Add checksumType parsing to service document.  Resource creation uses
lom:content tags, add checksum and checksum type to content tags.

Code moved to LOCKSS Space from Package, since it deals more with
Space-specific problems than Package.
LOCKSS WIP - edit & state IRI

refs #5425

Properly parse the edit and state IRIs from the deposit receipt.  Add sword
and Lockss-o-matic related namespaces to the namespace map.  Start on
polling for state, comments and logs where work needed.
Initial LOCKSS tests

Add pytest and pytest-django as testing dependencies.  Add testing fixtures
- initial data needed for everything, and a lockss-o-matic specific one.
Start on adding tests; currently only work if the modified simple sword
server is running.
Update for LOM changes

refs #5425

Update namespace for LOM, and make common.utils the only place it is
defined.  Add content provider ID, input by the user, and used to identify
the SS to LOM.
File splitting for LOCKSS uses tar

refS #5425

Splitting the file into chunks of no more than au_size uses tar instead of
split.  A tar file has headers and stores some of its own metadata, making
it a safer choice.
Update Lockssomatic to use new infrastructure

refs #5425

Update Lockssomatic to use (post) move to/from storage service.  Removed
now duplicate _store_aip_lom.  Store AIP calls post move functions.
Sizes to/from LOM are in kB

refs #5425

maxUploadSize in the service document, and lom:content size in the atom
entry are both in kilobytes, while all internal sizes are stored in bytes.
Add unit conversion.  Outgoing size rounded up.
Add misc attributes to Packages

Package has JSONField that stores misc attributes than need to be tracked,
but are not common enough to deserve their own fields.
Save State & Edit IRI in Packages.misc

refs #5425

Save state & edit IRI from deposit receipt into the misc attributes field
of Packages.