Added is_end_of_list field to linked list structs.

The sitedef_node and file structs implement doubly linked lists.  Added
a field named is_end_of_list to each, used to determine when a node
represents an unused sentinal node in the list.

Also added sitedef_node_alloc_list() function to allocate a sentinal node.

Changed some loops over sitedef_node lists from while loops into for loops.