string: Tolerate SUBSTRING length exceeding end index

string SUBSTRING command now ignores length if it points
past end of string and uses end of string instead.
String SUBSTRING tests now cover more corner cases.
cmCallVisualStudioMacro: fix a shadowing warning
cmVisualStudio10TargetGenerator: fix a narrowing warning

0xAA literals are integers which doesn't fit into a char array. C++11
says this is an error and VS2015 now warns about it.
Tests: Test add_custom_command and add_custom_target error cases

Add RunCMake.add_custom_command and RunCMake.add_custom_target tests to
cover the error messages for these commands.
Rename doing_verbatim to doing_nothing

We are about to introduce another property here, so give this
a better name.
Add USES_TERMINAL option for custom commands

Teach the add_custom_command and add_custom_target commands a new
USES_TERMINAL option.  Use it to tell the generator to give the command
direct access to the terminal if possible.
Give the interactive cache editor the USES_TERMINAL property
Ninja: factor out the test for console pool support
Ninja: Remove unused declaration
Ninja: Implement USES_TERMINAL using the console pool if available
Help: Add notes for topic 'console-pool'
CPackRPM: remove unneeded string length calculation

This wants just the rest of the string, which can be achieved by passing -1 as
remainder length.
KWSys SharedForward: Hard-code the ldpath buffer size to below VS 14 limit

Visual Studio 14 (2015) complains if a static character array is
declared with more than 65535 elements.  This limit should be large
enough for SharedForward clients, so just hard-code that instead of
trying to compute a limit.
VS: Rename VS 14 generator to 'Visual Studio 14 2015'

Now that we know the year component of this VS version we
can add it to the generator name.  For convenience, map
the name without the year to the name with the year.
Tests/BuildDepends: Drop unneeded help for Ninja

The extra post-modification invocations of 'ninja' does not seem to be
needed anymore for the BuildDepends test to pass.
Ninja: Use a TARGET_FILE variable to hold the link output file

Use an explicit "$TARGET_FILE" variable instead of "$out" so that
we can have multiple output files while still only referencing the
main one in command lines.
Ninja: Refactor restat to be a string internally

This will allow values other than "" and "1" to be generated in
the rules.ninja file.
Merge topic 'string-SUBSTRING-truncate'

474bbb9d string: Tolerate SUBSTRING length exceeding end index
Merge topic 'CPackRPM_SUBSTRING_-1'

5cc8169b CPackRPM: remove unneeded string length calculation
Merge topic 'fix-vs2015-warnings'

b138be07 cmVisualStudio10TargetGenerator: fix a narrowing warning
8d379cd7 cmCallVisualStudioMacro: fix a shadowing warning