EVIS fixes for Borland
Merge topic 'dev/custom-parsers' into next

3161b0da EVIS fixes for Borland
EVIS: Reimplement using custom parsing code

Testing the configure (no generate) step with ParaView shows ~20%
performance improvement (~47s -> ~39s on my machine).

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.
ExpandListArguments: Optimize the parser

Optimize cmSystemTools::ExpandListArguments so as not to build a string
character-by-character. This avoids excess reallocations of the result
string.
cmCommandArgument*: Remove!

Gone! Today is a happy day :) .
cmGeneratorExpressionLexer: Use a switch statement to parse

Optimize cmGeneratorExpressionLexer::Tokenize to use a switch statement.
The many dereferences of the input pointer were expensive. Also remove
excess pointer arithmetic.
cmGeneratorExpression: Improve parsing in StripEmptyListElements

The char-by-char parsing causes lots of reallocations which shouldn't be
necessary. To improve this, fast-path strings without a semicolon,
reserve space in the result, and insert into the result in chunks.
relnotes: Add release notes for the branch
Merge topic 'dev/custom-parsers' into next

ac2b9c85 relnotes: Add release notes for the branch
084b6751 cmGeneratorExpression: Improve parsing in StripEmptyListElements
c485fbf9 cmGeneratorExpressionLexer: Use a switch statement to parse
c964eb13 cmCommandArgument*: Remove!
0ade636c ExpandListArguments: Optimize the parser
5baa0048 EVIS: Reimplement using custom parsing code