Fix duplication of cargo during cargo scooping

For #2644.

When the cargo scoop triggers (in `Ship::OnCollision`), the cargo is 'killed'. However, killing an object doesn't actually remove it from the collision data structure, so it's possible for the cargo to generate another collision against the ship, which results in the scoop triggering again and the cargo being duplicated in the ship's hold.

This just adds an IsDead() check to prevent that. It would probably be better to do more work when a body is killed, so that it gets removed from collision structures and so on, but that would need much more extensive checking to ensure it doesn't break other things.