refactor: use uv to manage python dependencies, ruff instead of pylint
A little modernization of the repo.
- Use
uvto manage dependencies, python version, and virtual environment instead of pip and friends. - Specify dependencies in
pyproject.toml(note: we could split up the automation and documentation dependencies later if desired) - Use
ruffinstead ofpylint(way faster + no config needed) - Placeholder to enable code formatting with
ruffin a future PR