FIX: race condition in AbstractUploader initialization
improve testability of PolymorphicConstruction<>
FIX: T_UploadFacility didn't use PolymorphicConstruction
FIX: T_FileProcessing didn't use PolymorphicConstruction properly
check for running worker thread in T_FileProcessing
Merge pull request #332 from reneme/fix_init_race

FIX: Race Condition in AbstractUploader Initialization

This fixes a race when creating an instance of a concrete Uploader class. AbstractUploader spawned a thread that invokes a purely virtual method of AbstractUploader. Though this results in a purely virtual function called error, when the thread is scheduled before the concrete Uploader instance is successfully initialised.

Additionally this contains several related unit test fixes and improvements. Up to now T_UploadFacility and T_FileProcessing worked around the PolymorphicConstruction template that drives the creation of concrete Uploader instances. Since the thread creation described above is now deferred into a PolymorphicConstruction specific Initialize() method, this workaround didn't work anymore.