Added very basic classes for generating individual units of work from
a directory.  Takes into account whether a file is done processing, but 
not whether it is locked.
Modified DirectoryManager API so it is not specific to a particular suffix.
ProgressManager now uses a DirectoryManager instead of just knowing
the current directory.
Extracted AbstractProgressManager superclass/interface and made 
an in-memory implementation for lighter-weight testing.
WorkUnitFactory tests now use the InMemoryProgressManager for 
light-weight but still realistic persistence management.
Gave InMemoryProgressManager the ability to record external
locks.
WorkUnitFactory tries to acquire a lock on potential files, moving on
if it is unsuccessful in obtaining the lock.
Added VettableItem class to workload module.  It is very similar to the
one in models.py but can be used directly as a source/reading because 
it delegates methods/properties it doesn't provide to the object it 
was created from.

Separated out WorkUnitBuilder interface which creates WorkUnits
(made of VettableItem-wrapped sources/readings) from the 
WorkUnitFactory.
Renamed WorkUnitFactory to WorkUnitProvider and renamed
create_workunit to get_workunit.
Implementing WorkUnit interface for navigating work items for both the 
reals and candidates tasks.  Basic navigation done and tested.
Navigating vettable items still to be done.
Note this is functionality that is currently done by the model, but will 
become extracted and encapsulated into WorkUnits.
Added tests for RealsWorkUnit navigation and accepting/rejecting.
Fixed infinite loop in getting next vettable item.
Added test cases for CandidatesWorkUnit.
InMemoryProgressManager uses sets now so that a file can't be locked
more than once.
WorkloadManager can iterate over work units, generating them on 
demand and shifting locks as needed.
WorkUnitBuilders merged, but now require a WriterFactory.   WorkUnits
now require a results writer.
Merge branch 'master' into new_loading
WIP: moving model over to new workload manager.  Currently massively
broken.
The number of total sources will no longer be tracked in real time, so
commented out displaying summary status messages.
Fixing up model tests now that total statistics will not be tracked in real
time.  Work in progress.
Created a new base test case class which deletes files in a directory
which are not set in the configuration as part of the test files.
Put it to use in the test_model_persistence and test_models test 
suites.