Package: add new is_compressed helper
Package.extract_file can extract the whole package

Extract_file now takes an optional extract path which defaults to a
temp directory, and omitting the relative path extracts the whole
package.
Add post-store AIP callbacks
Update requirements
Fix form field class
Fix get_file_checksum import
Add migration for File model
Package: add each_file helper function
Callback: extract for package.each_file
Package.each_file: fix package name
Package.each_file: fix joining path
Callback: return success/fail counts
Callback: send all responses as JSON
Callback: only return JSON on failure