UIModel now unlocks all workunits when exiting.  Unlock method added
to WorkUnit.
Added directory property to WorkUnitProvider which UIModel can use to
get the current working directory.
Removed progress manager from UIModel constructor.
Added shutdown method to WorkUnitProviders which causes them to 
unlock any workunits they have prefetched.
Merge pull request #149 from drusk/unlock_prefetched_on_exit

Closes #143.
Ignore ImageNotLoadedExceptions arising from the user clicking in the 
image viewer or trying to recentroid while the image is not yet loaded.
Merge pull request #150 from drusk/image_not_loaded_exceptions

Probably closes #146.
Write to log when there are no more workunits.
Merge pull request #151 from drusk/log_no_more_workunits

Write to log when there are no more workunits.
Added some more debug logging at startup.
Merge pull request #152 from drusk/additional_debug_logging

Added some more debug logging at startup.
Don't force VOSpace listdir.  Caching provides a huge performance 
benefit.
Fix VOSpace progress manager tests for userid changes.
Merge pull request #154 from drusk/dont_force_vos_listdir

Dont force vos listdir
Added script for printing out progress processing a directory for a 
given task.
Merge pull request #156 from drusk/progress_stats

progress.py script
WorkUnitProvider now remembers which files it has previously seen as 
done so that it doesn't have to go check their VOSpace property over 
again.  It also now remembers files it has already fetched and immediately
rules them out.
Merge pull request #158 from drusk/cache_done_files

WorkUnitProvider remember done files
Only do the extra call to clear the property if the node already has that
property.
Merge pull request #159 from drusk/set_new_property_optimization

Save VOSpace call when setting new property