chore: add pre-commit tool
This helps to keep the code clean and will enforce linters to pass on the developers device. The CI helps enforce this for those who don't necessarily want to use pre-commit locally.
Some Future MR will add shell script checkers and ansible-lint.
I usually use semantic commit messages, hope this doesn't bother you.