Pike 8.0: Removed erroneous mutex.

This mutex has survived since ~2000, and seems to never have been useful.

In Pike 8.0 it could cause a deadlock, due to locking order together
with the compilers internal mutex as used by decode_value():

  Legend:

    CM:	master()->compiler_mutex (now removed).
    IM:	The compilers internal mutex.

  Thread 1:	   		Thread 2:		Notes:
  ---------------------------------------------------------------------------
  decode_value()
  compile()						Lock IM.
   				low_cast_to_program()
				findprog()
				low_findprog()
				CM->lock()		Lock CM.
				compile()		Wait for IM.
  low_cast_to_program()
  findprog()
  low_findprog()
  CM->lock()						Wait for CM.

This bug wasn't triggered before Pike 8.0 as then the compiler
forced threads to be disabled on entry.

Fixes [bug 7366].
Merge branch 'patches/pike8.0' into devel

* patches/pike8.0:
  Pike 8.0: Removed erroneous mutex.
Perform breadth-first traversal in collect_things_recur.

This should make results more accurate when the traversal limit is reached.
Also use a mapping to track visited things, to improve performance.
Version bumped to 6.0.9 by buildsystem.
Bugfix in CacheTagEntry.cache_count_memory.

Collected objects are now provided individually to Pike.count_memory, rather
than just counting the result array (which defeats the purpose of collecting
all those objects to begin with).