Fixed UnloadCargo stacking using new subcell API exposure

Partially supersedes #6083, Cargo.SpawnPassengers will have to wait for my Exit refactoring and discussion on how unloading while being sold should be handled.
How about

```csharp
public enum SubCellType { Invalid = int.MinValue, Any = int.MinValue / 2, Full = 0, First = 1 }
```

for better readability?