HPCC-12642 Add link/Release implementations that are not thread safe

Signed-off-by: Gavin Halliday <gavin.halliday@lexisnexis.com>
You're right about the LINK, but I don't think there is anything we can do about it.  
The problem is that addToFreeList may add it to the list, it might then be taken off that list, reused and free again all before that call exits.  That means that the link count need to be valid going into the call, and you can't do any checking after the call.

We could combine beforeDispose(), but you would need to be even more careful that none of the destruction code linked and released the pointer.  That is trickier to enforce than getting it right for addToFree().

I think we can replace the cas with a set because it doesn't make sense for a class used like this to also be used for a non-linked-cache.  (That is why the CInterfaceOf uses a cas.)

I debated removing beforeDispose(), but it is probably still useful.