HP aCC: record compiler flag for Ansi C++98 support for version 3.80 onwards

Old versions of aCC need a special compiler flag to get full C++98 template
support as e.g. CMake itself or the Complex and ComplexOneConfig tests need.
The same versions need a special flag to get a proper C++ library, too.
Qt4: write moc parameter file only when content has changed
cmSourceFileLocation: Avoid string allocation in extension checking

The substr call was causing excess allocations. Swap the cheaper
character check to be before the longer string comparison, now using the
prefix checking function.
cmSourceFileLocation: Simplify logic in Matches
cmSourceFileLocation: Save some string copies
cmSourceFileLocation: Return a string reference
cmSourceFile: Cache the isUiFile check

The filename extension call is expensive, so cache the .ui check.
perf: Cache the language property string
cmSourceFile: Take a string
ClearMatches: Only clear matches which were actually set

ClearMatches was clearing many variables which were never set in the
first place. Instead, store how many matches were made last time and
only clear those. It is moved to the cmMakefile class since it is a
common utility used by multiple commands.
ClearMatches: Store match variable names statically

Constructing the names and then turning them into a std::string is
non-negligible in performance testing.
StoreMatches: Minor cleanups
Features: Make CMAKE_CXX_KNOWN_FEATURES a property.

As a 'built-in' variable it imposes a cost on all variable lookups
and it is expected to be rarely used.
ninja: Use string parameters
ninja: Don't use a stringstream to build an argument list

Streams are expensive to construct (looks like some locale-related
stuff), so use strings instead.
CMake Nightly Date Stamp
CMake Nightly Date Stamp
CMake Nightly Date Stamp
ExternalProject: Set LABELS property to targets

This is useful for using CDash subprojects.
ExternalProject: Set FOLDER property to targets

This is useful when using the USE_FOLDERS global property