unifdef: improve indirect macro definitions

Note in the debug output when a macro value is updated.

Do not change a macro from defined to undefined.

Recursive definitions no longer cause a loop.
unifdef: further debugging improvements
tests: check recursive definitions, and unifdefall xterm

The xterm test is my original motivation for unifdef.
The OPT_PTY_HANDSHAKE definition relies on indirection
and without that feature unifdefall cannot remove all
preprocessor conditional directives.