collect GC roots of DSO

- Use dl_iterate_phdr to find the program header table
  for the DSO

- Iterate over program headers and collect all
  segments that are allocated and writeable for
  the GC.