Refactor of WrapperTask to avoid repated complete() calls

Instead uses the in-memory mock file system in MockFile to keep state
and rely on luigi's task execution order to assume task completeness
of dependencies
The caching of the WrapperTasks' complete()-status should work across workers launched from the same parent since they use a multiprocessing-backed data structure to store state (just like MockFile)