Updated Fido parser to work with Fido 1.1.9 that allows passing in a
filename as a command line parameter. This allows a Pronom ID to be
returned for files that aren't recognised by file contents but are
recognised by filename.
Initial files for fixing bag completion being slow.
Changed custom tag files (pronom, virusscan, and metadata) to extend
from AbstractKeyValueFile, which extends HashMap, instead of a class
from the BagIt library.
Changed file handling method on uploads, archive and bag completion.
Added a FileFactory class that caches file objects for reuse and
locking. Now storing the timestamp of payload files in a tagfile to know
if a payload file has been processed after being uploaded.
Multi-threaded the bag completion process so it is must faster. Created
AbstractKeyValueFile class providing base methods for storing key value
pairs in tag files. Using this method instead of classes in the BagIt
library for performance improvements.