Fixes crates getting collected by buildings or other crates

Long overdue fix for a regression I introduced.

Closes #5953. (Or should, it is very hard to test that specific case.)

Based on code from #6159.
(Tested NRE crash case reported in #6159. Buildings no longer collect crates dropped on them.)
```csharp
var mobile = landedOn.TraitOrDefault<MobileInfo>();
if (mobile != null && CrushableBy(mobile.Crushes, landedOn.Owner))
```

will save an expensive trait lookup.