HPCC-11637 Avoid multiple concourrent ECLWatch onActivity queries

Use getActivityInfo() to collect activity info into a cache. Reuse
cached info to set concurrent onActivity queries. The cache time
is configurable (default to 10 seconds).

The code merged from 5.0: Upgrade code to display HPCC server even
if there is no workunit on the server. A user may pause or resume
the server. Collect network address and port info for identifying
ECLCCServer, etc.

Signed-off-by: wangkx <kevin.wang@lexisnexis.com>
The openWorkunit has been called when the WU is created into cache through the CWUWrapper. At that time, the user access is not checked in the CWUWrapper constructor (using getWorkUnitFactory(), not getSecWorkUnitFactory()) because user is not a factor for cache. When the activity response is set for a user, I may call setSecWorkUnitFactory()+openWorkunit to check a user access. But, I think it is too much. Since I only need to check a user access, I can use OWN_WU_ACCESS to check.

The OWN_WU_ACCESS is not new. it has been used at multiple places in WsWorkunits.