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.
Add missing source creation.
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

8d952be5 cmTarget: Make GetSourceFiles string overload private.
9ed2ac6d cmGeneratorTarget: Trace cmSourceFile objects instead of strings.
a5cf4623 cmTarget: Cache the cmSourceFiles in GetSourceFiles.
69d0ba7f Add missing source creation.
3be89def cmTarget: Extract a ProcessSourceItemCMP0049 method.