Fix memory allocation bug in load.c
Fold object_free into object_delete, remove only other use of object_free
Create object_new() abstraction to avoid bare memory allocation, and always use object_delete() instead of mem_free() on objects.
Simplify some savefile loading/saving logic with new dynamic object allocation
Make object_split() return a newly allocated object.