HPCC-12250 Allow pluggable interface to workunit creation

Initial work on splitting the workunit implementation so that Dali-specific code is isolated
It's a bit odd (and this isn't new), that in the non-secure version, a single CWorkUnitFactory is created (and set into module member 'factory', then link counted on future requests, where as this secure version returns a new object per request.
I'm not sure it's safe, but perhaps there should also be a 'secFactory' module member which this method returns a link to, rather than creating another instance.