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
[CL 16933089 by jonathan adamczewski in ue5-main branch]
UnrealBuild -> Unreal for EngineDirectory, RootDirectory, IsEngineInstalled, UnrealBuildToolPath
Remove CommandUtils EngineDirectory, RootDirectory, IsEngineInstalled - use equvalents from UnrealBuildBase.Unreal
#jira none
[CL 16648181 by jonathan adamczewski in ue5-main branch]
Move NativeProjects partially into BuildUtilities - class split to avoid pulling in a larger chain of dependencies.
#jira none
[CL 16608480 by jonathan adamczewski in ue5-main branch]