Workunit split

Does seem weird..
It used to be the 'isShared()' test was in ~CLockedWorkUnit() , and because a new CLockedWorkUnit object was only created if the 'locked' mutex could be entered, so I think only 1 CLockedWorkUnit _should_ be active at any one time, although the unlockRemote code and the position of the locked.unlock() is odd as well.

I'm guessing here, but since CLockedWorkUnit is created like this:
```
return *new CLockedWorkUnit(LINK(this));
```

It will always be IsShared()==true , as long as the parent CLocalWorkUnit hasn't been released.
I suspect the parent CLocalWorkUnit should never be released before it's CLockedWorkUnit counterpart, and this was some sort of weird safeguard..