separate include guard test and add duplication check

In the today's meeting we decided to test duplicate include guards (e.g., `foo/bar.hpp` and `foo_bar.hpp`).
This script is expected to run both in pre-commit hook and CI environment.