introduce gc_mark_gray_list(), and cleanup redaunt code with it
rename variable_gray_list to atomic_gray_list
fix warning
Merge pull request #1406 from Fleurer/gc-mark-gray-list

introduce gc_mark_gray_list(), and cleanup redundant code with it