Utilities/Release: Use ${VAR} instead of @VAR@ syntax

The Utilities/Release/Cygwin/CMakeLists.txt is processed in the project,
not configured, so we should avoid using @-replacement syntax.
Help: Add more reference targets to cmake-language.7
Windows: Avoid () in environment variable references

Use nested variable evaluation instead.
EVIS: Add policy CMP0053

This policy switches between the old EVIS parser and the new, faster
parser.
EVIS: Reimplement using custom parsing code

Introduce a new implementation of ExpandVariablesInString and select
between the old and new implementations based on policy CMP0053.
Instead of cmCommandArgumentParserHelper, use a custom parser with our
own stack.  This is much faster and works well for our simple grammar.

The new behavior of CMP0053 should expand @VAR@ syntax only in certain
contexts.  All existing EVIS callers use "replaceAt == true" so
hard-code our call to the old implementation.  Update the signature to
default to "replaceAt == false" and pass "replaceAt == true" explicitly
in the call sites for configure_file and string(CONFIGURE).

Testing the configure (no generate) step with ParaView shows ~20%
performance improvement.

In terms of complete configure/generate steps, further testing with
ParaView shows a 20% performance improvement over 2.8.12.2 with Unix
Makefiles and minimal with Ninja. Ninja is less because it generate step
is the expensive part (future work will address this) by a long shot and
these changes help the configure step for the most part.
EVIS: Add tests for syntax corner cases and CMP0053

Include tests for:

- @ expansion during normal execution
- various characters in variable names for comparison between the new
  and the old parser
- corner cases in the parsers
- correct messages when behavior is different
Help: Add documentation on escaping changes with CMP0053
Help: Add release notes for policy CMP0053
Merge topic 'dev/faster-evis' into next

90f66381 Help: Add release notes for policy CMP0053
6804cd04 Help: Add documentation on escaping changes with CMP0053
411f77d1 EVIS: Add tests for syntax corner cases and CMP0053
bc385658 EVIS: Reimplement using custom parsing code
25102efc EVIS: Add policy CMP0053
e423f1c0 Windows: Avoid () in environment variable references
c179b289 Help: Add more reference targets to cmake-language.7
c3d98bd2 Utilities/Release: Use ${VAR} instead of @VAR@ syntax
Merge topic 'dev/faster-evis'

90f66381 Help: Add release notes for policy CMP0053
6804cd04 Help: Add documentation on escaping changes with CMP0053
411f77d1 EVIS: Add tests for syntax corner cases and CMP0053
bc385658 EVIS: Reimplement using custom parsing code
25102efc EVIS: Add policy CMP0053
e423f1c0 Windows: Avoid () in environment variable references
c179b289 Help: Add more reference targets to cmake-language.7
c3d98bd2 Utilities/Release: Use ${VAR} instead of @VAR@ syntax
Merge branch 'master' into next