cpp: Turn CPP keywords into TK_IDs so the C parser allows them as ids
c: Add support for parsing simple { ... } scope blocks
Simplify & overhaul version handling

- Disallowing nested versions, as in "version a.b.c", because it became too
  difficult to optimize the ORs/ANDs of version numbers...
- Now just one "level" of version blocks, and separate target blocks to
  handle target system specifics.
- Remove version block wildcards

- Quite some "unrelated" internal AST clean ups

- Added nice #if/#elseif/#else/#endif generation
c: Remove global parser position

(needed to implement cast parsing, for infinite look ahead)
c: Add partial support for cast expression parsing