A merge routine that overwrites arrays and deletes keys present in a source object but set to undefined