Garbage collection
In the mark phase,
objects are white, grey, or black.
Initially, all objects are white.
We start by marking goroutine stacks
and globals.
When we reach an object, we mark it grey.
When an object's referents are all marked,
we mark it black.