Copy handlers in cmVariableWatchCommand::Clone()

It's not really a clone if they're not copied.
Store client data as pointers

The STL containers create extra copies which makes keeping track of the
owner of the client data much messier.
Add a field for a deleter of the client data

The client data is arbitrary and the callback may be called an
unspecified number of times, so the cmVariableWatch must be the one to
delete the client data in the end.
Pass off a clone of the command for the callback

The command itself is owned by the cmMakefile class, but the
cmVariableWatch which holds a pointer to the cmVariableWatchCommand via
the client_data for the callback outlives the cmMakefile class in the Qt
GUI. This means that when the cmMakefile is destroyed, the variable
watch is still in effect, but with a stale pointer.

To remedy this, a clone of the command is given as the client data and
the cmVariableWatch class is given the task of deleting the memory.

An example CMakeLists.txt which demonstrates the issue (only displayed
in cmake-gui, so no tests can be written for it):

    set(var 0)
    variable_watch(var)
Prevent making extra entries in the watch map
Fix a typo in the watch command error message
add module to check for C++ features (#13842)
Merge topic 'cxx11' into next

8ea3dcd add module to check for C++ features (#13842)
bootstrap: Do not suppress CMAKE_OSX_SYSROOT if CFLAGS have -isysroot (#14324)

Revert commit a1c032b9 (bootstrap: Suppress CMAKE_OSX_SYSROOT if CFLAGS
have -isysroot, 2012-09-21).  If MACOSX_DEPLOYMENT_TARGET is set then
CMAKE_OSX_DEPLOYMENT_TARGET will be set and Darwin.cmake will complain
if no CMAKE_OSX_SYSROOT is set.  Just allow both -isysroot flags to
appear.  The one generated by CMAKE_OSX_SYSROOT appears after and
overrides the one from CFLAGS/CXXFLAGS.
Merge topic 'osx-find-sdk-for-deployment-target' into next

bf5a5bc bootstrap: Do not suppress CMAKE_OSX_SYSROOT if CFLAGS have -isysroot (#14324)
Merge topic 'dev/fix-variable-watch-crash' into next

7207d8c Fix a typo in the watch command error message
a3d9eb6 Prevent making extra entries in the watch map
0c0be47 Pass off a clone of the command for the callback
de119d4 Add a field for a deleter of the client data
61f73a9 Store client data as pointers
330bcb8 Copy handlers in cmVariableWatchCommand::Clone()