cmGeneratorTarget: Constify cmSourceFile* in containers.

Some of them will be used with other APIs which require value_type
to be cmSourceFile const*.
cmLocalGenerator: Add ComputeObjectFilenames method.
cmGeneratorTarget: Compute target objects on demand

Add a ComputeTargetObjects method to compute the object
names.  It takes a non-const reference to a mapping so
that it can be extended in the future with parameters
relevant to generator expression evaluation.

Remove the old method from the generators which are now all
functionally identical.

Remove the supporting cmGeneratorTarget::AddObject method. It is
no longer needed as the container member is populated directly.

In a follow-up, the UseObjectLibraries usage may be replaced by a
true generator expression evaluator for TARGET_OBJECTS. That
will require generators to use cmGeneratorTarget::GetExternalObjects
which is not currently the case for Xcode and VS generators.
Merge topic 'target-objects-refactor' into next

2cdd3056 cmGeneratorTarget: Compute target objects on demand
ea62e7fb cmLocalGenerator: Add ComputeObjectFilenames method.
bd4a5b13 cmGeneratorTarget: Constify cmSourceFile* in containers.