Draft: WIP rts: exclude idle threads from n_gc_threads

Douglas Wilson
2021-01-04T15:25:45Z

This MR is targeting the branch for #4619. This is my attempt to get CI to build it, without putting it in that branch yet. Please do lmk if this is abuse of CI

----

This adds a bool field to the gc_thread struct, `idle`. See comment in
gcWorkerThread.

all `for (int i = 0; i < n_gc_threads; ++i)` loops are changed to use
n_capabilities, and n_gc_threads is set to n_capabilities - num_idle_caps.

Rather than wire the idle_caps array around to more places, it seems
better to put this in gc_thread