Use proper C++ now that named macros require it.

(cherry picked from commit f6aff1ae5f6b626aac32c47a490ea550e865b162)
Fix code.

(cherry picked from commit 687d8fbc66fb248d36e8eedf0e19f1990dc1ca71)
Apply fixes from master (named macros now require proper C++).
Argument parsing can trigger ASTReading; needs transaction (ROOT-6625).

(cherry picked from commit 60d75ad26b6c20fd61c4b61b3da1e93159cd621e)
Take a cheap early exit for const, * and & (ROOT-6909).

(cherry picked from commit af66e1e8ebfb3a4b5c440aed8323389a699d6d70)
Text color was ignored.
Do not use (possibly unterminated!) StringRef::data() but str().

(cherry picked from commit b410db2b494549a09087f33dc04ad9e5a6f925b7)
Code correctness (no dyn scopes).

(cherry picked from commit 8f27ac9ee483e6b199bd50621309bcbd034ba808)
Implement TCollectionProxyInfo::Iterators::next for std::vector.

Eventhough this is not used in the I/O (which special case the iteration through vector for performance),
this is useful for user code to be completely independent of the collectio type

(cherry picked from commit 6139acfb1125326aa756334c7d3f00486fcc89ab)