document MoveIntoWorld
don't remove and add a trait at the same time
don't target or demolish oil derrick husks
Rewrite SyncReport for clarity and performance.

- Drop the impressive but inscrutable dynamically generated code in favour of some plain old code.
- Cache type information so costly reflection need not be performed each time.
- Only capture values from a sync object into an array rather than a dictionary lookup of both names and values for efficiency.
- Throw if the sync attribute is used on a property that cannot be read or that uses index parameters.
Use expressions to generate fast member access code rather than using the slower reflection based methods.
don't crash there yet when OpenGL version parsing fails

closes #5595
remove redundant OpenGL version check to avoid NREs
what if there is no vendor info to remove from version string
make C4 Demolition frozen actor aware
Restore the blinking ready text in TD.
Merge pull request #5637 from pchote/ready-blink

Restore the blinking ready text in TD.
StyleCop
Merge pull request #5639 from Mailaender/editor-stylecop

Fixed some minor StyleCop issues
Merge pull request #5596 from Mailaender/opengl-version

Fixed crash when OpenGL version parse fails
Merge pull request #5579 from Mailaender/frozen-C4

Fixed C4 target inconsistencies with Fog of War and Husks
Fixed selectedAuthor in ModBrowserLogic not being the correct value if mod.Author is null
Remove redundant constructors
Compact lambda expressions in some (not all) places
Remove some stray semicolons
Use Any() instead of Count() == 0