cmTarget: Extract a ProcessSourceItemCMP0049 method.

Avoid calling AddSource for each src filename.  That involves
checking each entry for uniqueness and creating a separate
generator expression for each one.

Instead, add a single entry for the list of sources.  The source
files are passed through a uniqueness filter at generate-time, so
duplicates don't matter so much.
cmTarget: Cache the cmSourceFiles in GetSourceFiles.
cmGeneratorTarget: Trace cmSourceFile objects instead of strings.

This reverses the decision in commit d38423ec (cmTarget: Add a
method to obtain list of filenames for sources., 2014-03-17).  The
cmSourceFile based API is preferred because that avoids creation of
many cmSourceFileLocation objects for matching strings, and the
result is cached by cmTarget.
cmTarget: Make GetSourceFiles string overload private.

Consumers should use the cmSourceFile overload, which is now
always the case.
Merge topic 'optimize-source-file-processing' into next

ed829b8a cmTarget: Make GetSourceFiles string overload private.
5e7a1319 cmGeneratorTarget: Trace cmSourceFile objects instead of strings.
a01a3e3b cmTarget: Cache the cmSourceFiles in GetSourceFiles.
2dc4de36 cmTarget: Extract a ProcessSourceItemCMP0049 method.