Move deleteOldObject() to after postSaveObject()

This change allows postSaveObject() some more flexibilty. For example if the postSaveObject() is used to update a binding table value that has an on delete cascade, this allows the reference on that table to be updated to the new object before the old object is deleted, preventing an unwanted cascade.