Added watchdog.pl
Correctly diagnose predeclaring enums
Fix second struct/union/enum decls overwriting attributes
Tidy of switch-on-enum code
Fold a few long lines
Implicit casts mirror their operand's location
Mention implicit-vs-explicit casts in all cast-warnings
Check declared function arguments are complete

We allow incomplete arguments, e.g.
f(struct A);
g(enum Y);
because we accept these as forward-decls
Trim leading underscores for tests
Fixed cc1 handling of '#' in /* comments */
Fixed local-scope redefinition and local-extern-redefinition warnings