Support clang-tidy
This MR contains the following following:
- change required to support unity builds (missing include guard)
- CI job that runs clang-tidy on source code (excluding tests)
- script that produces code quality report that Gitlab can consume
- script that produces a HTML report
Edited by Michal Liszcz