Fixed Cargo.SpawnPassenger for >1 passengers at a time.

Uses similar code to https://github.com/OpenRA/OpenRA/pull/6060 and moves ChooseExitCell from UnloadCargo for use in SpawnPassenger.
You should either SetPosition or MoveIntoWorld, but not both.