Fix reserved name check.

* According to the standard, reserved names that either begin with underscore
followed by a capital letter and a capital letter, contain 2 consecutive
underscores, or are part of the reserved keywords.
* The check was not working for function-like macros.
* The check could report errors if #define is used in commnets.
Merge pull request #145 from Typz/reservednames

Fix reserved name check, consider "A17.6.4.3.2 Global names"