Makefiles: Compute local object files on demand.

Don't compute them up front.
cmGlobalGenerator: Extract a ComputeTargetObjectDirectory interface.

Make it public for future external calls.
cmGeneratorTarget: Constify the AddObject API.

The storage is already const.
cmGeneratorTarget: Constify the AddExplicitObjectName API.

The storage is already const.
cmOSXBundleGenerator: Make MacOSXContentGeneratorType arg const.
cmGeneratorTarget: Make GetSourceDepends const.
Constify some APIs in generators.
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 interface.

Implement it in the local generators and use it in the global
generators.
Merge topic 'target-objects-refactor' into next

f6da0440 cmLocalGenerator: Add ComputeObjectFilenames interface.
9ad804ac cmGeneratorTarget: Constify cmSourceFile* in containers.
c725bb3c Constify some APIs in generators.
dcfcd23e cmGeneratorTarget: Make GetSourceDepends const.
04cf50ff cmOSXBundleGenerator: Make MacOSXContentGeneratorType arg const.
6132d979 cmGeneratorTarget: Constify the AddExplicitObjectName API.
bc512211 cmGeneratorTarget: Constify the AddObject API.
cd43433d cmGlobalGenerator: Extract a ComputeTargetObjectDirectory interface.
d5b2e33b Makefiles: Compute local object files on demand.