HPCC-9828 - Resolve package watcher notification/reload deadlock

Multiple CDaliPackageWatcher's could be notified in parallel
on different threads. Each invoked a reload of all packages in
the manager, which could result in deadlock, if two threads
both tried to unregister a watcher that was already in
it's notify method.

Signed-off-by: Jake Smith <jake.smith@lexisnexis.com>
Merge pull request #4734 from jakesmith/hpcc-9828

HPCC-9828 - Resolve package watcher notification/reload deadlock

Reviewed-by: Gavin Halliday <ghalliday@hpccsystems.com>
HPCC-9802 Delete logical file using removeEntry(), not detach()

Existing ECLWatch code deletes a logical file using detach(). When
the file is associated with a superfile, the superfile may not be
able to be deleted. This fix calls removeEntry() to delete a file.
The removeEntry() should check whether the file can be deleted or
not if it is a subfile. This fix also cleans the code.

Signed-off-by: Kevin Wang <kevin.wang@lexisnexis.com>
HPCC-9802 Add exception release

Signed-off-by: Kevin Wang <kevin.wang@lexisnexis.com>
Merge remote-tracking branch 'kwang/h9802' into candidate-4.0.0

Hand merged-by: Gavin Halliday <ghalliday@hpccsystems.com>
Community Edition 4.0.0-7 Gold

Signed-off-by: Gavin Halliday <gavin.halliday@lexisnexis.com>
Merge remote-tracking branch 'origin/candidate-4.0.0' into candidate-4.0.2

Merged-by: Gavin Halliday <ghalliday@hpccsystems.com>