Since moving to "tools/" the suggested command would modify
headers *outside* Blender's source directory (now prevented).
Since "#pragma once" was used - the duplicate header check
needed to be moved from the end to the start of the header.
Other changes:
- Add type hints.
- Exclude headers intended to be included multiple times.
- Use `argparse` for argument parsing.
- Use str.format.