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 again and again just to skip the entire
file.

This patch adds the feature to 8cc.