ADT.List: Do not put struct pike_list_structs into the GC
Backport from Pike master.
Fixes Pike.count_memory() getting stuck in a loop on ADT.List.
NB: The comments about inline markers below are not relevant
to Pike 8.0.
Original commit message from Pike master follows:
Since the GC was changed to use inline markers, all items fed into the
GC must comply with a certain memory layout - containing
GC_MARKER_MEMBERS at the beginning of their region.
struct pike_list_struct does not, and cannot easily be made to because
struct List_struct (storage of ADT.List) and struct pike_list_struct
need to stay compatible because the former is used to store sentinels
being used as the latter type.
While we lose reporting from the GC about issues in ADT.List's inner
structure, GC checking of struct pike_list_structs seems to not be
functionally required. On the upside, the GC no longer writes beyond
or into struct pike_list_structs which did not reserve the memory areas
for use by the GC.