Compiles on RedHat.  my_free() is partially implemented.  There seems to be a bug in how we insert segments into lists by start address.  See insert_seg_by_start_address().
print_seg() now also prints the segments end address (e.g. the first byte NOT in the segment).  We do this for sanity, but also because there's a bug in how we keep the free-list sorted via insert_seg_by_start_address().