Add macros header.
More macros.
After egg's review.
Lint I hate you!
Merge pull request #339 from pleroy/Macros

Portable macros in base/macros.h