Provide progress monitor during uploads.

The progress monitor can be supressed with --quiet.
Support meaningful exit status from actions.

If an action returns a non-None value, use it for the exit status.
This is now used by checkpresent to return a meaningful value so
that checkpresent can be used for scripting.
 0 - archive is present
 1 - archive is not present
 75 - inventory needs to be updated (sysexits.h TEMPFAIL)
Add suppport for storing and using hashes.

When uploading, store the sha256 tree hash into the cache so
that it can later be used to verify a glacier archive via
'sync' or 'checkpresent'.

The cache will be migrated, and existing archives will have
their hash updated on the next inventory sync.

With 'checkpresent', providing the --file= option will validate
the inventory sha256 against that of the provided file.
Add verbose archive list option.

The --verbose flag will print the id, name, last_seen, created,
and sha256 fields.
Support providing mutliple files to upload.

The archive upload action can now accept multiple files to
upload. If the --name argument or pipe input (i.e. '-') is
used only one file may be provided.