Concatenate adjacent string tokens more efficiently.

String contents were copied multiple times if three or more string
tokens were concatenated. This patch is to do copy only once.
Cleanup.
Fix a small bug in macro token concatenation.

  #define conc(x, y) x ## y
  conc(., 1)

should be expanded to a token of type pp-number.
8cc created a new token of type identifier, which resulted in
"variable '.1' is not defined" error message.