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

This patch adds the feature to 8cc.