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.
CMake*CompilerId: Fix patch level for Intel >= 14.0 (#14806)

According to the Intel release notes:

 http://software.intel.com/sites/default/files/l-compiler-release-update.pdf

the __INTEL_COMPILER_UPDATE predefined macro was introduced to hold the
third version component.

Reported-by: Dirk Ribbrock <dirk.ribbrock@mathematik.uni-dortmund.de>
Co-Author: Rolf Eike Beer <kde@opensource.sf-tec.de>
Merge branch 'fix-find_dependency-empty-version' into release
Merge branch 'intel-14-version' into release
Encoding: Provide option to configure CMake to use UTF-8 encoding.
Encoding: If configured, write Visual Studio project files as UTF-8.
cmGeneratorTarget: Don't store ObjectSources for object libraries.

Compute them on demand instead.
cmGlobalGenerator: Make ComputeTargetObjects non-virtual

Implement it in terms of the ComputeObjectFilenames virtual method
on the local generators.

Remove the reimplementation from the global generators which are
now all functionally identical.
QtDialog: Avoid linking to Qt4 WinMain when using Qt 5.

Override the QT_QTMAIN_LIBRARY cache variable with a regular
variable in the Qt 5 configuration. This avoids linking with the
Qt 4 version of the WinMain library.
Merge branch 'fix-Qt5-windows-build' into release
cmTarget: Restore <CONFIG>_LOCATION to CMP0026 OLD behavior (#14808)

Restore support for the undocumented <CONFIG>_LOCATION target property
removed by commit v3.0.0-rc1~175^2 (cmTarget: Remove support for
<CONFIG>_LOCATION property, 2013-12-30) as part of the CMP0026 OLD
behavior.
Merge branch 'master' into CONFIG-LOCATION-CMP0026