Do renaming "live" during C parsing

* slightly more difficult, because not all symbols are known at once
* presumably a bit faster, since there's no extra AST traversal
* now also affects #define bodies, which weren't visited by the old
  renaming
* less code
Only mark #define body as TODO, not the entire #define

Normally we can parse the #define head just fine, only the body causes
problems. Only turning the body into a TODO in such cases allows the
#define head to be affected by renaming.