Tests: test -D parsing on the command line
cmCacheManager: parse -D flags more strictly

In the case of:

    -DCACHE_VARS=-DEXTERNAL_PROJECT_CMAKE_ARG:BOOL=TRUE

the variable is parsed out as:

    CACHE_VARS=-DEXTERNAL_PROJECT_CMAKE_ARG

because the parser allows '=' in the variable name. Disallow such a name
on the command line.
extend the testing for version comparison

This now checks also the negative outcome of the comparision operation, and
adds a bunch more different cases.
cmSystemTools: reimplement verson comparison without sscanf()

This now has the advantage that it works with version strings with any number
of components.
Merge topic 'fix--D-command-line-parsing' into next

aee7e4a0 cmCacheManager: parse -D flags more strictly
368e8de4 Tests: test -D parsing on the command line
Merge topic 'VERSION_no_sscanf' into next

cdf2df2b cmSystemTools: reimplement verson comparison without sscanf()
667560c8 extend the testing for version comparison