Adds `header_guards.sh` bash script, used in CI to validate future changes. Can be run locally to fix invalid header guards.
This prevents the pitfall of UB when checking if they have been assigned something valid by comparing to nullptr.