cmCustomCommand: Return std::string from GetWorkingDirectory
cmGlobalXCodeGenerator: Simplify handling of multiple outputs

Make the multiple output pair map more local.  Generate it where we
have the current configuration available.
Generalize cmCustomCommandGenerator to more fields

Until now the cmCustomCommandGenerator was used only to compute the
command lines of a custom command.  Generalize it to get the comment,
working directory, dependencies, and outputs of custom commands.  Update
use in all generators to support this.
Merge topic 'generalize-cmCustomCommandGenerator' into next

bc993f27 Generalize cmCustomCommandGenerator to more fields
9a5c5544 cmGlobalXCodeGenerator: Simplify handling of multiple outputs
d45e7f34 cmCustomCommand: Return std::string from GetWorkingDirectory