Implement include guard detection.

A header file is usually guarded by a pair of #ifndef and #endif.
Modern compilers are able to detect the pattern to not open and
read from the same file just to skip the entire file.

This patch adds the feature to 8cc.