Migrated from Black and isort to Ruff for code formatting and linting, a modern, blazingly fast formatter and linter written in Rust.

Enabled additional ruff rule sets.

**For end users:**

No changes required. This is purely a development tooling change that doesn't affect the library API or behavior.

**For contributors:**

- Use ``make reformat`` or ``uv run ruff format`` to format code (replaces ``black`` and ``isort``)
- Use ``make lint`` to check code quality (now includes formatting, linting, and type checking)
- Pre-commit hooks automatically updated to use ``ruff`` and ``ruff-format``
- CI/CD pipelines updated to use ruff in GitHub Actions workflows

**Benefits:**

- 10-100x faster formatting and linting compared to Black + isort + flake8
- Single tool for formatting, import sorting, and linting
- More comprehensive code quality checks out of the box
- Auto-fixes for many common issues (33 issues auto-fixed during migration)
- Better integration with modern Python development workflows

This change improves the developer experience and code quality while maintaining the same code style standards.
