Only reset "NeedsCleaning" flag in case of re-entrant call.
Do not needlessly blank IdentifierInfo. This information will be set
once the token type is picked.
This yields a nice 1% speedup when pre-processing sqlite amalgamation
through:
valgrind --tool=callgrind ./bin/clang -E sqlite3.c -o/dev/null
Was this setting the identifier info to nullptr as a shorthand to clear *any* token data that was previously built up (basically, a cheaper call to startToken())? Should we be asserting that Token::PtrData is nullptr?