Expanded struct file so that it can act as a linked list.

Added file_alloc_list(), file_pop_and_give() and file_take_and_push() functions.
Added files field to struct site to hold file list.
Renamed relative_path field of struct file to path.

A file struct can have a relative or absolute path.