Pike.identify_cycle: Fix various issues with LFUNs throwing errors.
LFUNs used by mapping operations may throw errors; this caused
identify_loop_visit_leave() to also throw errors. The rest of
the identify_cycle code was not happy about this and
* Forgot to unlock the mc_mutex. This caused all following calls
to Pike.identify_cycle() and Pike.count_memory() to hang.
* Leaked memory.
The above issues are now avoided by instead using the addresses
of objects as indices in the affected mapping. It also fixes
the issue with hangs if there are objects with lfuns calling
Pike.identify_cycle() or Pike.count_memory().
Fixes PIKE-106 (#8106).