[Sgen] Implement partial marking for big object arrays

This commit changed the gray stack to support work items. When a big
object array is marked, Sgen now create several work items. Every
work item rappresents a pieces of the array that must be scaned.
Since they are different pieces, the workers can now parallel scan
the array, resulting in a better work distribution.