introduce gc_mark_gray_list(), and cleanup redundant code with it

and rename `variable_gray_list` to `atomic_gray_list`, as the comment described `"to be traversed atomically"`.