text: Title: Use isort
  Body: **WARNING:** This change should _not_ be implemented before https://github.com/scrapy/scrapy/pull/5734 is merged, because there is a high chance of conflicts.
  
  We should use [isort](https://pycqa.github.io/isort/) to address import sorting and grouping:
  - Fix it for all existing code.
  - Automate it for new code.
  - Check it for new code, in case someone accidentally skips the automation.
  
  Fixing existing code should be a matter of running ``isort .`` on the root folder and committing all changes.
  
  Automation should be handled through pre-commit. Chances are will provide pre-commit support for black, so here it would be a matter of extending that to include isort:
  
  https://github.com/scrapy-plugins/scrapy-zyte-api/blob/016ef98092d1795b317c44c11326eefa58215f0d/.pre-commit-config.yaml#L2-L5
  
  It also seems like we may need an `.isort.cfg` file for compatibility with black:
  
  https://github.com/scrapy-plugins/scrapy-zyte-api/blob/016ef98092d1795b317c44c11326eefa58215f0d/.isort.cfg
  
  Finally, we need to check on a CI job that isort has been indeed used for all new changes. First we should add an entry to [tox.ini](https://github.com/scrapy/scrapy/blob/master/tox.ini):
  
  ```ini
  [testenv:isort]
  deps = 
      isort==5.10.1
  commands = 
      isort --check-only {posargs:.}
  ```
  
  Then, we can add a job to [.github/workflows/checks.yml](https://github.com/scrapy/scrapy/blob/master/.github/workflows/checks.yml) in line with the existing ones, i.e.:
  
  ```yml
          - python-version: "3.11"
            env:
              TOXENV: isort
  ```