ModelingTools: prevent user from accepting EditMeshMaterialsTool with an empty material set
#rb david.hill
#preflight 6306766f0061f895d04b867c
#jira UE-156197
[CL 21550728 by Ryan Schmidt in ue5-main branch]
Also do some refactoring to pass settings structs which improve readability when setting options, reduce the need to change call sites due to signature changes, and allow overloading of Read/Load functions which return some type
#rb
#rnx
#jira none
#robomerge 5.0
#preflight
[CL 17829083 by matija kecman in ue5-main branch]