Reimplemented TraitsInConstructOrder()

For https://github.com/OpenRA/OpenRA/issues/6701

Hopefully this should be better
I would personally prefer these get put on their own lines.

```csharp
Trait = i,
Type = i.GetType(),
Dependencies = PrerequisitesOf(i).ToList()
```