Improve performance of StartupTraceListener.CopyTo() for very large trace logs by generating a string once, then iterating through the lines. Per-character iteration of a StringBuilder can perform very poorly.
#jira none
#trivial
#preflight 60f9e90a915a9200010d0d46
#ROBOMERGE-SOURCE: CL 16933089 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v838-16927207)
[CL 16933104 by jonathan adamczewski in ue5-release-engine-test branch]
Move StartupTraceListener.cs to BuildUtilities
#jira none
#ROBOMERGE-SOURCE: CL 16608546 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v828-16531559)
[CL 16608556 by jonathan adamczewski in ue5-release-engine-test branch]
Move NativeProjects partially into BuildUtilities - class split to avoid pulling in a larger chain of dependencies.
#jira none
#ROBOMERGE-SOURCE: CL 16608480 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v828-16531559)
[CL 16608488 by jonathan adamczewski in ue5-release-engine-test branch]