Qt4Macros: Make QT4_CREATE_MOC_COMMAND a function

QT4_CREATE_MOC_COMMAND is given a moc_flags argument that contains the
COMPILE_DEFINITIONS and a potentially large list of include directories.
Since it is a macro, the ${moc_flags} reference is replaced with this
content and sent through cmMakefile::ExpandVariablesInString (EVIS).
Since commit v3.0.0-rc1~138^2 (Qt4: Use generator expression in
COMPILE_DEFINITIONS, 2014-01-13) the COMPILE_DEFINITIONS value contains
a '$' so the EVIS fast-path is no longer used.  Instead the full
cmCommandArgumentParserHelper is now used on the large input, which is
very slow (since it was originally created for hand-written code).

Change QT4_CREATE_MOC_COMMAND to a function instead of a macro to avoid
passing large content through EVIS.  This makes it significantly faster.
check for C++ compiler feature support after setting the needed flags
Merge topic 'hpux-compile' into next

0d12fb54 check for C++ compiler feature support after setting the needed flags
Merge topic 'Qt4Macros-moc-performance' into next

7beba986 Qt4Macros: Make QT4_CREATE_MOC_COMMAND a function
Help: Add notes for topic 'ExternalProject_exclude-from-all'
Merge topic 'ExternalProject_exclude-from-all' into next

f4fe6322 Help: Add notes for topic 'ExternalProject_exclude-from-all'