Stop-the-World Garbage Collection for ParallelDo.

This includes the following changes:

  * Add StackExtents abstraction, allocate one for each thread

  * Threads maintain their own StackExtent (must be valid before yielding to GC)

  * The GC walks through the list of StackExtents and walks each one via
    the same stack scanning code.

  * Added mandelbrot benchmark more like one from Rivertrail demo.

Also added the following drive-by changes:

  * The ForkJoinShared object has a vector of ForkJoinSlice*; each
    slice inserts/removes self in its constructor/destructor.

  * Augmented test call-to-method-mut.js with checks of return value
    from p.map call that is supposedly disqualified to ensure e.getA
    mutation is still happening.