Validates a single flavor name. Must be lowercase, alphanumeric +
underscores, start with a letter, and not be a reserved word
(main, test, or a Dart keyword) — flavor names become Dart enum
constants and Gradle product flavors.
Validates a comma-separated flavors string (e.g. dev,staging,prod).
Returns null when valid, or an error message describing the first
problem found (invalid name, duplicate, or reserved word).