Improve linting and code formatting
We now format our code to be 88 symbols per line, which is quite old recommendation. E.g. PyCharm now draw vertical line to guide you at 120 symbols. I think, we should use this across our code.
In some places in bindings I still would like to have our original formatting, so I placed // clang-format off // clang-format on guards around them
We now also uses ruff for both formatting and linting
And we go for prek instead of pre-commit
We fix the issues identified by the linter (additional checks added).
Edited by Anton Joubert